public void Create_migration_metadata() { var targetModel = new Metadata.Model(); var upgradeOperations = new MigrationOperation[0]; var downgradeOperations = new MigrationOperation[0]; var migration = new MigrationMetadata("000000000000001_Name") { TargetModel = targetModel, UpgradeOperations = upgradeOperations, DowngradeOperations = downgradeOperations, }; Assert.Equal("000000000000001_Name", migration.MigrationId); Assert.Same(targetModel, migration.TargetModel); Assert.Same(upgradeOperations, migration.UpgradeOperations); Assert.Same(downgradeOperations, migration.DowngradeOperations); }
public void Generate_migration_metadata_class() { var model = new Model(); var entityType = new EntityType("Entity"); entityType.SetKey(entityType.AddProperty("Id", typeof(int))); model.AddEntityType(entityType); var migration = new MigrationMetadata("000000000000001_Name") { TargetModel = model }; var codeGenerator = new CSharpMigrationCodeGenerator(new CSharpModelCodeGenerator()); var stringBuilder = new IndentedStringBuilder(); codeGenerator.GenerateMigrationMetadataClass("MyNamespace", "MyClass", migration, stringBuilder); Assert.Equal( @"using Microsoft.Data.Entity.Metadata; using Microsoft.Data.Entity.Migrations.Infrastructure; using System; namespace MyNamespace { public partial class MyClass : IMigrationMetadata { string IMigrationMetadata.MigrationId { get { return ""000000000000001_Name""; } } IModel IMigrationMetadata.TargetModel { get { var builder = new ModelBuilder(); builder.Entity(""Entity"", b => { b.Property<int>(""Id""); b.Key(""Id""); }); return builder.Model; } } } }", stringBuilder.ToString()); }
public void Generate_migration_class() { var upgradeOperations = new[] { new AddColumnOperation("dbo.MyTable", new Column("Foo", typeof(int))), new AddColumnOperation("dbo.MyTable", new Column("Bar", typeof(int))) }; var downgradeOperations = new[] { new DropColumnOperation("dbo.MyTable", "Foo"), new DropColumnOperation("dbo.MyTable", "Bar") }; var migration = new MigrationMetadata("000000000000001_Name") { UpgradeOperations = upgradeOperations, DowngradeOperations = downgradeOperations }; var codeGenerator = new CSharpMigrationCodeGenerator(new CSharpModelCodeGenerator()); var stringBuilder = new IndentedStringBuilder(); codeGenerator.GenerateMigrationClass("MyNamespace", "MyClass", migration, stringBuilder); Assert.Equal( @"using Microsoft.Data.Entity.Migrations; using Microsoft.Data.Entity.Migrations.Builders; using System; namespace MyNamespace { public partial class MyClass : Migration { public override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn(""dbo.MyTable"", ""Foo"", c => c.Int()); migrationBuilder.AddColumn(""dbo.MyTable"", ""Bar"", c => c.Int()); } public override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropColumn(""dbo.MyTable"", ""Foo""); migrationBuilder.DropColumn(""dbo.MyTable"", ""Bar""); } } }", stringBuilder.ToString()); }