Ejemplo n.º 1
0
        public void GetErrorDescription()
        {
            var simpleConceptInfo = new SimpleConceptInfo { Name = "s", Data = "d" };
            var refConceptInfo = new RefConceptInfo { Name = "r", Reference = simpleConceptInfo };
            var refRefConceptInfo = new RefRefConceptInfo { Name = "rr", Reference = refConceptInfo };

            Assert.AreEqual("Rhetos.Dsl.Test.ConceptInfoHelperTest+RefRefConceptInfo Name=rr Reference=r.s", refRefConceptInfo.GetErrorDescription());

            refRefConceptInfo.Name = null;
            Assert.AreEqual("Rhetos.Dsl.Test.ConceptInfoHelperTest+RefRefConceptInfo Name=<null> Reference=r.s", refRefConceptInfo.GetErrorDescription());
            refRefConceptInfo.Name = "rr";

            refRefConceptInfo.Reference = null;
            Assert.AreEqual("Rhetos.Dsl.Test.ConceptInfoHelperTest+RefRefConceptInfo Name=rr Reference=<null>", refRefConceptInfo.GetErrorDescription());
            refRefConceptInfo.Reference = refConceptInfo;

            simpleConceptInfo.Name = null;
            TestUtility.AssertContains(refRefConceptInfo.GetErrorDescription(),
                new[] { refRefConceptInfo.GetType().FullName, "Name=rr", "Reference=", "null" });
            simpleConceptInfo.Name = "s";

            Assert.AreEqual("<null>", ConceptInfoHelper.GetErrorDescription(null));

            Assert.AreEqual(typeof(SimpleConceptInfo).FullName + " Name=s Data=<null>", new SimpleConceptInfo { Name = "s", Data = null }.GetErrorDescription());
        }
Ejemplo n.º 2
0
        public void GetErrorDescription()
        {
            var simpleConceptInfo = new SimpleConceptInfo {
                Name = "s", Data = "d"
            };
            var refConceptInfo = new RefConceptInfo {
                Name = "r", Reference = simpleConceptInfo
            };
            var refRefConceptInfo = new RefRefConceptInfo {
                Name = "rr", Reference = refConceptInfo
            };

            Assert.AreEqual("Rhetos.Dsl.Test.ConceptInfoHelperTest+RefRefConceptInfo Name=rr Reference=r.s", refRefConceptInfo.GetErrorDescription());

            refRefConceptInfo.Name = null;
            Assert.AreEqual("Rhetos.Dsl.Test.ConceptInfoHelperTest+RefRefConceptInfo Name=<null> Reference=r.s", refRefConceptInfo.GetErrorDescription());
            refRefConceptInfo.Name = "rr";

            refRefConceptInfo.Reference = null;
            Assert.AreEqual("Rhetos.Dsl.Test.ConceptInfoHelperTest+RefRefConceptInfo Name=rr Reference=<null>", refRefConceptInfo.GetErrorDescription());
            refRefConceptInfo.Reference = refConceptInfo;

            simpleConceptInfo.Name = null;
            TestUtility.AssertContains(refRefConceptInfo.GetErrorDescription(),
                                       new[] { refRefConceptInfo.GetType().FullName, "Name=rr", "Reference=", "null" });
            simpleConceptInfo.Name = "s";

            Assert.AreEqual("<null>", ConceptInfoHelper.GetErrorDescription(null));

            Assert.AreEqual(typeof(SimpleConceptInfo).FullName + " Name=s Data=<null>", new SimpleConceptInfo {
                Name = "s", Data = null
            }.GetErrorDescription());
        }
Ejemplo n.º 3
0
        public void GetDirectDependencies_NotRecursive()
        {
            var simpleConceptInfo = new SimpleConceptInfo("s", "d");
            var refConceptInfo = new RefConceptInfo("r", simpleConceptInfo);
            var refRefConceptInfo = new RefRefConceptInfo("rr", refConceptInfo);

            var dependencies = refRefConceptInfo.GetDirectDependencies();
            Assert.AreEqual(Dump(new IConceptInfo[] { refConceptInfo }), Dump(dependencies));
        }
Ejemplo n.º 4
0
        public void GetAllDependencies_Recursive()
        {
            var simpleConceptInfo = new SimpleConceptInfo("s", "d");
            var refConceptInfo    = new RefConceptInfo("r", simpleConceptInfo);
            var refRefConceptInfo = new RefRefConceptInfo("rr", refConceptInfo);

            var dependencies = refRefConceptInfo.GetAllDependencies();

            Assert.AreEqual(Dump(new IConceptInfo[] { simpleConceptInfo, refConceptInfo }), Dump(dependencies));
        }
Ejemplo n.º 5
0
            public void InitializeNonparsableProperties(out IEnumerable <IConceptInfo> createdConcepts)
            {
                Name        = "a1";
                RefToParent = new RefConceptInfo {
                    Name = "ref", Reference = new SimpleConceptInfo {
                        Name = Parent.Name, Data = Parent.Data
                    }
                };

                createdConcepts = new[] { RefToParent };
            }
Ejemplo n.º 6
0
        public void ReplaceReferencesWithFullConcepts_UnresolvedReference()
        {
            List <IConceptInfo> concepts = new List <IConceptInfo>();

            concepts.Add(new SimpleConceptInfo("ax", "aaa"));
            concepts.Add(new SimpleConceptInfo("cx", "ccc"));
            RefConceptInfo ci = new RefConceptInfo("rx", new SimpleConceptInfo("bx", null));

            concepts.Add(ci);

            TestUtility.ShouldFail <DslSyntaxException>(
                () => DslModelFromConcepts(concepts),
                "Referenced", "REF rx.bx", "SIMPLE bx");
        }
Ejemplo n.º 7
0
        public void ReplaceReferencesWithFullConcepts_Test()
        {
            List <IConceptInfo> concepts = new List <IConceptInfo>();

            concepts.Add(new SimpleConceptInfo("a", "aaa"));
            concepts.Add(new SimpleConceptInfo("b", "bbb"));
            concepts.Add(new SimpleConceptInfo("c", "ccc"));
            RefConceptInfo ci = new RefConceptInfo("r", new SimpleConceptInfo("b", null));

            concepts.Add(ci);

            Assert.AreEqual(null, ci.Reference.Data);
            DslModelFromConcepts(concepts);
            Assert.AreEqual("bbb", ci.Reference.Data);
        }
Ejemplo n.º 8
0
        public void ReplaceReferencesWithFullConcepts_DerivedConcept()
        {
            List <IConceptInfo> concepts = new List <IConceptInfo>();

            concepts.Add(new DerivedConceptInfo("a", "aaa", "aaaaa"));
            concepts.Add(new DerivedConceptInfo("b", "bbb", "bbbbb"));
            concepts.Add(new DerivedConceptInfo("c", "ccc", "aaaaa"));
            RefConceptInfo ci = new RefConceptInfo("r", new SimpleConceptInfo("b", null));

            concepts.Add(ci);

            Assert.AreEqual(null, ci.Reference.Data);
            DslModelFromConcepts(concepts);
            Assert.AreEqual("bbb", ci.Reference.Data);
            Assert.IsTrue(ci.Reference is DerivedConceptInfo, "ci.Reference is DerivedConceptInfo");
            Assert.AreEqual("bbbbb", (ci.Reference as DerivedConceptInfo).Extra);
        }
Ejemplo n.º 9
0
        public void SortReferencesBeforeUsingConceptTest()
        {
            var c1 = new SimpleConceptInfo {
                Name = "n1", Data = ""
            };
            var c2 = new RefConceptInfo {
                Name = "n2", Reference = c1
            };
            List <IConceptInfo> concepts = new List <IConceptInfo>()
            {
                c2, c1
            };

            concepts = DslModelFromConcepts(concepts);

            Assert.AreEqual(2, concepts.Count);
            Assert.AreEqual(c1, concepts[0]);
            Assert.AreEqual(c2, concepts[1]);
        }
Ejemplo n.º 10
0
        public void SortReferencesBeforeUsingConceptTest()
        {
            var c2 = new SimpleConceptInfo {
                Name = "n1", Data = ""
            };
            var c1 = new RefConceptInfo {
                Name = "n2", Reference = c2
            };
            var concepts = new List <IConceptInfo>()
            {
                c1, c2
            };
            var concepts2 = DslModelFromConcepts(concepts);

            Assert.AreEqual(
                "REF n2.n1, SIMPLE n1",
                TestUtility.Dump(concepts, c => c is InitializationConcept ? "InitializationConcept" : c.GetUserDescription()));
            Assert.AreEqual(
                "InitializationConcept, SIMPLE n1, REF n2.n1",
                TestUtility.Dump(concepts2, c => c is InitializationConcept ? "InitializationConcept" : c.GetUserDescription()));
        }
Ejemplo n.º 11
0
        public void ReplaceReferencesWithFullConcepts_DerivedConcept()
        {
            List<IConceptInfo> concepts = new List<IConceptInfo>();
            concepts.Add(new DerivedConceptInfo("a", "aaa", "aaaaa"));
            concepts.Add(new DerivedConceptInfo("b", "bbb", "bbbbb"));
            concepts.Add(new DerivedConceptInfo("c", "ccc", "aaaaa"));
            RefConceptInfo ci = new RefConceptInfo("r", new SimpleConceptInfo("b", null));
            concepts.Add(ci);

            Assert.AreEqual(null, ci.Reference.Data);
            DslModelFromConcepts(concepts);
            Assert.AreEqual("bbb", ci.Reference.Data);
            Assert.IsTrue(ci.Reference is DerivedConceptInfo, "ci.Reference is DerivedConceptInfo");
            Assert.AreEqual("bbbbb", (ci.Reference as DerivedConceptInfo).Extra);
        }
Ejemplo n.º 12
0
            public void InitializeNonparsableProperties(out IEnumerable<IConceptInfo> createdConcepts)
            {
                Name = "a1";
                RefToParent = new RefConceptInfo { Name = "ref", Reference = new SimpleConceptInfo { Name = Parent.Name, Data = Parent.Data } };

                createdConcepts = new[] { RefToParent };
            }
Ejemplo n.º 13
0
 public RefRefConceptInfo(string name, RefConceptInfo reference)
 {
     Name      = name;
     Reference = reference;
 }
Ejemplo n.º 14
0
        public void ReplaceReferencesWithFullConcepts_Test()
        {
            List<IConceptInfo> concepts = new List<IConceptInfo>();
            concepts.Add(new SimpleConceptInfo("a", "aaa"));
            concepts.Add(new SimpleConceptInfo("b", "bbb"));
            concepts.Add(new SimpleConceptInfo("c", "ccc"));
            RefConceptInfo ci = new RefConceptInfo("r", new SimpleConceptInfo("b", null));
            concepts.Add(ci);

            Assert.AreEqual(null, ci.Reference.Data);
            DslModelFromConcepts(concepts);
            Assert.AreEqual("bbb", ci.Reference.Data);
        }
Ejemplo n.º 15
0
        public void ReplaceReferencesWithFullConcepts_UnresolvedReference()
        {
            try
            {
                List<IConceptInfo> concepts = new List<IConceptInfo>();
                concepts.Add(new SimpleConceptInfo("ax", "aaa"));
                concepts.Add(new SimpleConceptInfo("cx", "ccc"));
                RefConceptInfo ci = new RefConceptInfo("rx", new SimpleConceptInfo("bx", null));
                concepts.Add(ci);

                DslModelFromConcepts(concepts);
            }
            catch (Exception ex)
            {
                Assert.IsTrue(ex.Message.Contains("eferenc"), "Must contain explanation about \"references\".");
                Assert.IsTrue(ex.Message.Contains("RefConceptInfo"));
                Assert.IsTrue(ex.Message.Contains("SimpleConceptInfo"));
                Assert.IsTrue(ex.Message.Contains("rx"));
                Assert.IsTrue(ex.Message.Contains("bx"));
                throw;
            }
        }
Ejemplo n.º 16
0
        public void SortReferencesBeforeUsingConceptTest()
        {
            var c1 = new SimpleConceptInfo { Name = "n1", Data = "" };
            var c2 = new RefConceptInfo { Name = "n2", Reference = c1 };
            List<IConceptInfo> concepts = new List<IConceptInfo>() { c2, c1 };

            concepts = DslModelFromConcepts(concepts);

            Assert.AreEqual(2, concepts.Count);
            Assert.AreEqual(c1, concepts[0]);
            Assert.AreEqual(c2, concepts[1]);
        }
Ejemplo n.º 17
0
 public RefRefConceptInfo(string name, RefConceptInfo reference)
 {
     Name = name;
     Reference = reference;
 }