Esempio n. 1
0
        public void MToNRelation()
        {
            var a = new EntityType
            {
                Code = "A",
            };

            var b = new EntityType
            {
                Code = "B",
            };

            var relation = new RelationType("rel1");

            relation.AddNode(a, "A");
            relation.AddNode(b, "B");
            relation.AddVertex("A", "B");

            Assert.AreEqual(relation.Nodes.Count, 2);
            Assert.AreEqual(relation.GetNode("A").ModelObject, a);
            Assert.AreEqual(relation.GetNode("B").ModelObject, b);

            Assert.AreEqual(relation.Nodes.Values.SelectMany(x => x.Vertices).Select(x => x.Value).Distinct().Count(), 1);

            var vertex = relation.GetVertex("A", "B");

            Assert.AreEqual(vertex.LeftCardinality.Min, 0);
            Assert.AreEqual(vertex.LeftCardinality.Max, int.MaxValue);
            Assert.AreEqual(vertex.RightCardinality.Min, 0);
            Assert.AreEqual(vertex.RightCardinality.Max, int.MaxValue);
        }
Esempio n. 2
0
        public void TernaryRelation()
        {
            var a = new EntityType
            {
                Code = "A",
            };

            var b = new EntityType
            {
                Code = "B",
            };

            var c = new EntityType
            {
                Code = "C",
            };

            var relation = new RelationType("rel1");

            relation.AddNode(a, "A");
            relation.AddNode(b, "B");
            relation.AddNode(c, "C");
            relation.AddVertex("A", "B");
            relation.AddVertex("A", "C");

            Assert.AreEqual(relation.Nodes.Count, 3);
            Assert.AreEqual(relation.GetNode("A").ModelObject, a);
            Assert.AreEqual(relation.GetNode("B").ModelObject, b);
            Assert.AreEqual(relation.GetNode("C").ModelObject, c);

            Assert.AreEqual(relation.Nodes.Values.SelectMany(x => x.Vertices).Select(x => x.Value).Distinct().Count(), 2);

            var abVertex = relation.GetVertex("A", "B");

            Assert.AreEqual(abVertex.LeftNode.Discriminant, "A");
            Assert.AreEqual(abVertex.RightNode.Discriminant, "B");

            var acVertex = relation.GetVertex("A", "C");

            Assert.AreEqual(acVertex.LeftNode.Discriminant, "A");
            Assert.AreEqual(acVertex.RightNode.Discriminant, "C");

            Assert.IsNull(relation.GetVertex("B", "C"));
        }
Esempio n. 3
0
        public void AddNullAlias()
        {
            var a = new EntityType
            {
                Code = "A",
            };

            var relation = new RelationType();

            relation.AddNode(a, null);
        }
Esempio n. 4
0
        public void AddEntityType()
        {
            var a = new EntityType
            {
                Code = "A",
            };

            var relation = new RelationType();

            relation.AddNode(a, "A");

            Assert.AreEqual(relation.Nodes.Count, 1);
            Assert.AreEqual(relation.GetNode("A").ModelObject, a);

            Assert.AreEqual(relation.Nodes.Values.SelectMany(x => x.Vertices).Select(x => x.Value).Count(), 0);
        }
Esempio n. 5
0
        public void SimpleRelationWithBasicFields()
        {
            var a = new EntityType
            {
                Code   = "A",
                Fields = new List <IField>
                {
                    new ShortTextField
                    {
                        Code = "aField1",
                    },
                    new ShortTextField
                    {
                        Code = "aField2",
                    },
                },
            };

            var b = new EntityType
            {
                Code   = "B",
                Fields = new List <IField>
                {
                    new ShortTextField
                    {
                        Code = "bField1",
                    },
                    new ShortTextField
                    {
                        Code = "bField2",
                    },
                },
            };

            var relation = new RelationType("rel1");

            relation.AddNode(a, "A");
            relation.AddNode(b, "B");
            relation.AddVertex("A", "B");

            var view = new RelationView
            {
                RelationType = relation,
                Controls     = new List <IControl>
                {
                    new FieldControl
                    {
                        Discriminant = "A",
                        Field        = a.Fields[0],
                    },
                    new FieldControl
                    {
                        Discriminant = "A",
                        Field        = a.Fields[1],
                    },
                    new FieldControl
                    {
                        Discriminant = "B",
                        Field        = a.Fields[0],
                    },
                    new FieldControl
                    {
                        Discriminant = "B",
                        Field        = a.Fields[1],
                    },
                },
            };

            var dataProvider = new MSSqlQueryDataProvider();

            //var query = dataProvider.GetData(view);

            //Assert.AreEqual(query, $"SELECT {ent1.Fields[1].Code}, {ent1.Fields[0].Code} FROM {ent1.Code}");
        }
Esempio n. 6
0
        public void AddNullEntityType()
        {
            var relation = new RelationType();

            relation.AddNode(null, "A");
        }