Exemple #1
0
        public static void SchemaManagerSetFKShouldAddFK()
        {
            SchemaManager    mgr       = new SchemaManager();
            SchemaDefinition schema    = mgr.SetSchema("test");
            string           tableName = "Referencee";

            mgr.AddTable(tableName);
            mgr.AddColumn(tableName, new Column("PutColumnName", DataTypes.Boolean));

            string refering = "Referencer";

            mgr.AddTable(refering);
            mgr.AddColumn(refering, new Column("fk", DataTypes.Long));

            int initCount = schema.ForeignKeys.Length;

            mgr.SetForeignKey(tableName, refering, "fk");

            Expect.AreEqual(initCount + 1, schema.ForeignKeys.Length);

            Table referenced = mgr.GetTable(tableName);
            Table referencer = mgr.GetTable(refering);

            Expect.AreEqual(schema.ForeignKeys.Length, referenced.ReferencingForeignKeys.Length);
            Expect.AreEqual(0, referencer.ReferencingForeignKeys.Length);
            DeleteSchema(schema);
        }
Exemple #2
0
        public static void AddForeignKeyShouldFailIfColumnNotDefined()
        {
            SchemaManager    mgr = new SchemaManager();
            SchemaDefinition s   = mgr.SetSchema("test");

            mgr.AddTable("TableOne");
            mgr.AddTable("ReferringTable");
            SchemaResult r = mgr.SetForeignKey("TableOne", "ReferringTable", "TableOneID");

            Expect.IsFalse(r.Success);
            OutLine(r.Message, ConsoleColor.Yellow);

            TryDeleteSchema(s);
        }
Exemple #3
0
        private static SchemaManager GetTestSchemaManager()
        {
            SchemaManager mgr = new SchemaManager();

            mgr.AddTable("Person");
            mgr.AddColumn("Person", "Id", DataTypes.Long);
            mgr.AddColumn("Person", "Name", DataTypes.String);
            mgr.AddTable("Employee");
            mgr.AddColumn("Employee", "Id", DataTypes.Long);
            mgr.AddColumn("Employee", "Salary", DataTypes.Decimal);
            SchemaResult result = mgr.SetForeignKey("Person", "Employee", "Id", "Id");

            Expect.IsTrue(result.Success, $"Message: {result.Message}\r\nException: {result.ExceptionMessage}");
            return(mgr);
        }
 private static SchemaDefinition GetTestSchema()
 {
     SchemaManager mgr = new SchemaManager();
     SchemaDefinition schema = mgr.SetSchema("test");
     mgr.AddTable("monkey");
     return schema;
 }
Exemple #5
0
        public void SchemaMgrSetPropertyShouldSetPropertyNameOfColumn()
        {
            string           tableName    = "Test";
            string           columnName   = "ColumnName";
            string           propertyName = "PropertyName";
            FileInfo         schemFile    = new FileInfo(".\\{0}.json"._Format(MethodBase.GetCurrentMethod().Name));
            SchemaDefinition def          = new SchemaDefinition();

            def.ToJsonFile(schemFile);
            SchemaManager mgr = new SchemaManager(schemFile);

            mgr.AddTable(tableName);
            mgr.AddColumn(tableName, columnName);

            Table  testTable = mgr.GetTable(tableName);
            Column column    = testTable.Columns[0];

            Expect.AreEqual(1, testTable.Columns.Length);
            Expect.AreEqual(columnName, column.Name);
            Expect.AreEqual(column.Name, column.PropertyName);

            mgr.SetColumnPropertyName(tableName, columnName, propertyName);

            testTable = mgr.GetTable(tableName);
            column    = testTable.Columns[0];
            Expect.AreEqual(1, testTable.Columns.Length);
            Expect.AreEqual(columnName, column.Name);
            Expect.AreEqual(propertyName, column.PropertyName);
        }
Exemple #6
0
        private static SchemaDefinition CreateTestTables(string targetTable, string referencingTable, SchemaManager mgr)
        {
            SchemaDefinition schema = mgr.SetSchema("fkTest");

            DeleteSchema(schema);
            schema = mgr.SetSchema("fkTest");

            mgr.AddTable(targetTable);
            mgr.AddColumn(targetTable, new Column("PutColumnName", DataTypes.ULong));

            mgr.AddTable(referencingTable);
            mgr.AddColumn(referencingTable, new Column("PutColumnName", DataTypes.ULong));

            mgr.SetForeignKey(targetTable, referencingTable, "fk");
            return(schema);
        }
Exemple #7
0
 protected override void AddSchemaTables(TypeSchema typeSchema, SchemaManager schemaManager, ITypeTableNameProvider tableNameProvider = null)
 {
     tableNameProvider = tableNameProvider ?? new EchoTypeTableNameProvider();
     foreach (Type topType in typeSchema.Tables)
     {
         TypeInheritanceDescriptor inheritance = new TypeInheritanceDescriptor(topType);
         Type inheritFrom = null;
         inheritance.Chain.BackwardsEach(typeTable =>
         {
             string tableName = typeTable.GetTableName(tableNameProvider);
             schemaManager.AddTable(tableName);
             schemaManager.ExecutePreColumnAugmentations(tableName);
             typeTable.PropertyColumns.Each(pc =>
             {
                 AddPropertyColumn(schemaManager, typeSchema.DefaultDataTypeBehavior, tableName, pc.PropertyInfo);
             });
             schemaManager.ExecutePostColumnAugmentations(tableName);
             schemaManager.AddColumn(tableName, "Id", DataTypes.Long);
             if (inheritFrom != null)
             {
                 schemaManager.SetForeignKey(tableNameProvider.GetTableName(inheritFrom), tableName, "Id", "Id");
             }
             else
             {
                 schemaManager.SetKeyColumn(tableName, "Id");
             }
             inheritFrom = typeTable.Type;
         });
     }
 }
Exemple #8
0
        public static void SchemaMgrAddColumnShouldSuccess()
        {
            string           tableName = "tableOne";
            SchemaManager    mgr       = new SchemaManager();
            SchemaDefinition s         = mgr.SetSchema("test");
            SchemaResult     r         = mgr.AddTable(tableName);

            r = mgr.AddColumn(tableName, new Column("ColumnOne", DataTypes.Long, false));
            Expect.IsTrue(r.Success);
        }
Exemple #9
0
        public static void SchemaMgrAddTableShouldSuccess()
        {
            SchemaManager    mgr = new SchemaManager();
            SchemaDefinition s   = mgr.SetSchema("test");
            SchemaResult     r   = mgr.AddTable("tableOne");

            Expect.IsTrue(r.Success);

            TryDeleteSchema(s);
        }
Exemple #10
0
 protected virtual void AddSchemaTables(TypeSchema typeSchema, SchemaManager schemaManager, ITypeTableNameProvider tableNameProvider = null)
 {
     tableNameProvider = tableNameProvider ?? new EchoTypeTableNameProvider();
     foreach (Type tableType in typeSchema.Tables)
     {
         string tableName = GetTableNameForType(tableType, tableNameProvider);
         schemaManager.AddTable(tableName);
         schemaManager.ExecutePreColumnAugmentations(tableName);
         AddPropertyColumns(tableType, schemaManager, typeSchema.DefaultDataTypeBehavior);
         schemaManager.ExecutePostColumnAugmentations(tableName);
     }
 }
Exemple #11
0
        public static void SchemaManagerAddColumnShouldAddColumn()
        {
            SchemaManager    mgr       = new SchemaManager();
            SchemaDefinition schema    = mgr.SetSchema("test");
            string           tableName = "Babboons";

            mgr.AddTable(tableName);
            mgr.AddColumn(tableName, new Column("PutColumnName", DataTypes.Boolean));

            Table table = mgr.GetTable(tableName);

            Expect.IsTrue(table.Columns.Length == 1);
            DeleteSchema(schema);
        }
Exemple #12
0
        public void GetTableShouldReturnTable()
        {
            string        table = "TableName";
            SchemaManager sm    = new SchemaManager();

            sm.SetSchema("test_schema".RandomString(4));

            sm.AddTable(table);

            Table t = sm.GetTable(table);

            Expect.IsNotNull(t);
            Expect.AreEqual(t.Name, table);
        }
Exemple #13
0
        public void SchemaMgrSetClassNameShouldSetClassNameOfTable()
        {
            string           tableName = "Test";
            string           className = "ClassName";
            FileInfo         schemFile = new FileInfo(".\\{0}.json"._Format(MethodBase.GetCurrentMethod().Name));
            SchemaDefinition def       = new SchemaDefinition();

            def.ToJsonFile(schemFile);
            SchemaManager mgr = new SchemaManager(schemFile);

            mgr.AddTable(tableName);

            Table testTable = mgr.GetTable(tableName);

            Expect.AreEqual(tableName, testTable.Name);
            Expect.AreEqual(tableName, testTable.ClassName);

            mgr.SetTableClassName(tableName, className);

            testTable = mgr.GetTable(tableName);

            Expect.AreEqual(tableName, testTable.Name);
            Expect.AreEqual(className, testTable.ClassName);
        }