public void Node_Create_Person()
        {
            NodeSchema n = new NodeSchema(name: "person");

            n.Attributes.Add(new Attribute(name: "FirstName", type: new AttributeText()));
            n.Attributes.Add(new Attribute(name: "LastName", type: new AttributeText()));
            n.Attributes.Add(new Attribute(name: "DateOfBirth", new AttributeDatum()));
            n.Edges.Add(new EdgeSchema(name: "likes"));
            n.Edges.Add(new EdgeSchema(name: "married"));
            n.Edges.Add(new EdgeSchema(name: "friend"));

            n.Edges[0].Constraints.Add(new Constraint(name: "person"));
            n.Edges[1].Constraints.Add(new Constraint(name: "person"));
            n.Edges[2].Constraints.Add(new Constraint(name: "person"));

            n.Edges[0].Attributes.Add(new Attribute(name: "rating", type: new AttributeEuro()));

            //object p1 = from p in n select p;
            NodeSchemaScript script = new NodeSchemaScript();
            var serializer          = new SerializerBuilder().Build();
            var sw = new StringWriter();

            serializer.Serialize(sw, n);
            var yaml         = sw.ToString();
            var deserializer = new DeserializerBuilder().IgnoreUnmatchedProperties().Build();
            var r            = deserializer.Deserialize <NodeSchema>(yaml);
            var sql          = script.CreateScript(n);
        }
        public void Node_Can_Deserialize_And_Create_SqlSchema()
        {
            var yaml                = @"Version: 15.0.0.0
Name: person
Attributes:
- Name: FirstName
  Type: Text
- Name: LastName
  Type: Text
- Name: DateOfBirth
  Type: DateTime
Edges:
- Name: likes
  Constraints:
  - Name: person
  Attributes:
  - Name: rating
    Type: Integer
- Name: married
  Constraints:
  - Name: person
  Attributes: []
- Name: friend
  Constraints:
  - Name: person
  Attributes: []
";
            var deserializer        = new DeserializerBuilder().IgnoreUnmatchedProperties().Build();
            var r                   = deserializer.Deserialize <NodeSchema>(yaml);
            NodeSchemaScript script = new NodeSchemaScript();
            var s                   = script.CreateScript(r);
        }
        public void CreateEntityFromYamlWithCustomType()
        {
            // create some entities through built-in data provider
            var yaml                = @"Version: 15.0.0.0
Name: persoon
Attributes:
- Name: BSN
  Type: elfproef
- Name: periode
  Type: periode
Edges:
- Name: partner
  Constraints:
  - Name: persoon
  Attributes:
  - Name: periode
    Type: periode
- Name: kind
  Constraints:
  - Name: persoon
- Name: ouder
  Constraints:
  - Name: persoon
";
            var deserializer        = new DeserializerBuilder().IgnoreUnmatchedProperties().Build();
            var r                   = deserializer.Deserialize <NodeSchema>(yaml);
            NodeSchemaScript script = new NodeSchemaScript();
            var s                   = script.CreateScript(r);

            Assert.True(s == @"CREATE TABLE persoon (
ID INTEGER PRIMARY KEY,
BSN VARCHAR(10),periode_begin DATETIME,periode_eind  DATETIME 
) AS NODE;
CREATE TABLE partner (
periode_begin DATETIME,periode_eind  DATETIME CONSTRAINT EC_PARTNER CONNECTION (
persoon TO persoon
)
) AS EDGE;

CREATE TABLE kind (
CONSTRAINT EC_KIND CONNECTION (
persoon TO persoon
)
) AS EDGE;

CREATE TABLE ouder (
CONSTRAINT EC_OUDER CONNECTION (
persoon TO persoon
)
) AS EDGE;

");

            /*
             *
             * string connectionString = "Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=graph;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False";
             *
             * using (SqlConnection connection = new SqlConnection(connectionString))
             * {
             *  SqlCommand command = new SqlCommand(s, connection);
             *  //command.Parameters.AddWithValue("@tPatSName", "Your-Parm-Value");
             *  connection.Open();
             *  SqlDataReader reader = command.ExecuteReader();
             *  try
             *  {
             *      while (reader.Read())
             *      {
             *      }
             *  }
             *  finally
             *  {
             *      // Always call Close when done reading.
             *      reader.Close();
             *  }
             * }
             */
        }