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); }
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")); }
public void AddNullAlias() { var a = new EntityType { Code = "A", }; var relation = new RelationType(); relation.AddNode(a, null); }
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); }
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}"); }
public void AddNullEntityType() { var relation = new RelationType(); relation.AddNode(null, "A"); }