public async Task TestSaveProjection()
        {
            CdmCorpusDefinition corpus = TestHelper.GetLocalCorpus(testsSubpath, "TestSaveProjection");

            CdmManifestDefinition manifest = await corpus.FetchObjectAsync <CdmManifestDefinition>($"local:/default.manifest.cdm.json");

            CdmEntityDefinition entitySales = await corpus.FetchObjectAsync <CdmEntityDefinition>($"local:/Sales.cdm.json/Sales", manifest);

            Assert.IsNotNull(entitySales);

            CdmFolderDefinition actualRoot = corpus.Storage.FetchRootFolder("output");

            Assert.IsNotNull(actualRoot);

            actualRoot.Documents.Add(entitySales.InDocument, "Persisted_Sales.cdm.json");
            await actualRoot.Documents[0].SaveAsAsync("output:/Persisted_Sales.cdm.json");

            CdmEntityDefinition entityActual = await corpus.FetchObjectAsync <CdmEntityDefinition>($"output:/Persisted_Sales.cdm.json/Sales", manifest);

            Assert.IsNotNull(entityActual);

            Entity entityContentActual = PersistenceLayer.ToData <CdmEntityDefinition, Entity>(entityActual, null, null, "CdmFolder");

            Assert.IsNotNull(entityContentActual);
            Assert.IsNotNull(entityContentActual.HasAttributes);
            Assert.IsTrue(entityContentActual.HasAttributes.Count == 1);
            Assert.IsFalse(entityContentActual.HasAttributes[0].ToString().Contains(@"""entityReference"""));
        }
示例#2
0
        public void TestModelJsonToDataTypeAttribute()
        {
            CdmCorpusDefinition corpus = new CdmCorpusDefinition();

            corpus.SetEventCallback(new EventCallback {
                Invoke = CommonDataModelLoader.ConsoleStatusReport
            }, CdmStatusLevel.Warning);
            corpus.Storage.Mount("local", new LocalAdapter("C:\\Root\\Path"));
            corpus.Storage.DefaultNamespace = "local";

            var cdmTypeAttributeDefinition = corpus.MakeObject <CdmTypeAttributeDefinition>(CdmObjectType.TypeAttributeDef, "TestSavingTraitAttribute", false);

            List <string> englishConstantsList = new List <string>()
            {
                "en", "Some description in English language"
            };
            List <string> serbianConstantsList = new List <string>()
            {
                "sr", "Opis na srpskom jeziku"
            };
            List <string> chineseConstantsList = new List <string>()
            {
                "cn", "一些中文描述"
            };
            List <List <string> > listOfConstLists = new List <List <string> > {
                englishConstantsList, serbianConstantsList, chineseConstantsList
            };

            var constEntDef = corpus.MakeObject <CdmConstantEntityDefinition>(CdmObjectType.ConstantEntityDef, "localizedDescriptions", false);

            constEntDef.ConstantValues = listOfConstLists;
            constEntDef.EntityShape    = corpus.MakeRef <CdmEntityReference>(CdmObjectType.EntityRef, "localizedTable", true);
            var traitReference2 = corpus.MakeObject <CdmTraitReference>(CdmObjectType.TraitRef, "is.localized.describedAs", false);

            traitReference2.Arguments.Add("localizedDisplayText", corpus.MakeRef <CdmEntityReference>(CdmObjectType.EntityRef, constEntDef, true));
            cdmTypeAttributeDefinition.AppliedTraits.Add(traitReference2);

            var result = PersistenceLayer.ToData <CdmTypeAttributeDefinition, Task <Attribute> >(cdmTypeAttributeDefinition, null, null, PersistenceLayer.ModelJson).Result;

            Assert.IsNotNull(result.Traits);

            var argument = result.Traits[0].ToObject <TraitReferenceDefinition>().Arguments[0].ToObject <Argument>();
            List <List <string> > constantValues = argument.Value.ToObject <EntityReferenceDefinition>().EntityReference.ToObject <ConstantEntity>().ConstantValues;

            Assert.AreEqual("en", constantValues[0][0]);
            Assert.AreEqual("Some description in English language", constantValues[0][1]);
            Assert.AreEqual("sr", constantValues[1][0]);
            Assert.AreEqual("Opis na srpskom jeziku", constantValues[1][1]);
            Assert.AreEqual("cn", constantValues[2][0]);
            Assert.AreEqual("一些中文描述", constantValues[2][1]);
        }
        public static dynamic CopyData <T>(T instance, ResolveOptions resOpt = null, CopyOptions options = null)
            where T : CdmObject
        {
            if (resOpt == null)
            {
                resOpt = new ResolveOptions(instance, instance.Ctx.Corpus.DefaultResolutionDirectives);
            }

            if (options == null)
            {
                options = new CopyOptions();
            }

            string persistenceTypeName = "CdmFolder";

            return(PersistenceLayer.ToData <T, dynamic>(instance, resOpt, options, persistenceTypeName));
        }
示例#4
0
        public void TestNonNullDefaultValueAttribute()
        {
            JArray jArray = new JArray(
                new JObject(
                    new JProperty("languageTag", "en"),
                    new JProperty("displayText", "Preferred Customer"),
                    new JProperty("attributeValue", "1"),
                    new JProperty("displayOrder", "0")),
                new JObject(
                    new JProperty("languageTag", "en"),
                    new JProperty("displayText", "Standard"),
                    new JProperty("attributeValue", "2"),
                    new JProperty("displayOrder", "1")));

            JObject input = new JObject(new JProperty("defaultValue", jArray));

            CdmTypeAttributeDefinition cdmTypeAttributeDefinition = TypeAttributePersistence.FromData(new ResolveContext(new CdmCorpusDefinition(), null), input);

            TypeAttribute result = PersistenceLayer.ToData <CdmTypeAttributeDefinition, TypeAttribute>(cdmTypeAttributeDefinition, null, null, PersistenceLayer.CdmFolder);

            Assert.IsNotNull(result);
            Assert.IsTrue(JToken.DeepEquals(input["defaultValue"], result.DefaultValue));
        }