public void Can_detect_added_modification_functions() { var modelBuilder = new DbModelBuilder(); var model1 = modelBuilder.Build(ProviderInfo); var model2 = new TestContext(); var commandTreeGenerator = new ModificationCommandTreeGenerator(TestContext.CreateDynamicUpdateModel()); var createProcedureOperations = new EdmModelDiffer() .Diff( model1.GetModel(), model2.GetModel(), commandTreeGenerator, new SqlServerMigrationSqlGenerator()) .OfType <CreateProcedureOperation>() .ToList(); Assert.Equal(14, createProcedureOperations.Count); Assert.True(createProcedureOperations.All(c => c.Name.Any())); Assert.True(createProcedureOperations.All(c => c.BodySql.Any())); }
public void System_operations_are_included_when_requested() { var modelBuilder = new DbModelBuilder(); var model1 = modelBuilder.Build(ProviderInfo).GetModel(); modelBuilder = new DbModelBuilder(); modelBuilder.Entity <MigrationsCustomer>(); var model2 = modelBuilder.Build(ProviderInfo).GetModel(); model2.Descendants().Each(e => e.SetAttributeValue(EdmXNames.IsSystemName, true)); var operations = new EdmModelDiffer().Diff(model1, model2, includeSystemOperations: true); Assert.True(operations.All(o => o.IsSystem)); var createTableOperation = operations.OfType <CreateTableOperation>().First(); Assert.True(createTableOperation.IsSystem); operations = new EdmModelDiffer().Diff(model2, model1, includeSystemOperations: true); var dropTableOperation = operations.OfType <DropTableOperation>().First(); Assert.True(dropTableOperation.IsSystem); }
public void Can_detect_removed_modification_functions() { var modelBuilder = new DbModelBuilder(); var model1 = modelBuilder.Build(ProviderInfo); modelBuilder.Entity <OrderLine>().MapToStoredProcedures(); var model2 = new TestContext(); var dropProcedureOperations = new EdmModelDiffer().Diff(model2.GetModel(), model1.GetModel()) .OfType <DropProcedureOperation>() .ToList(); Assert.Equal(14, dropProcedureOperations.Count); Assert.True(dropProcedureOperations.All(c => c.Name.Any())); }
public void Can_detect_removed_modification_functions() { var modelBuilder = new DbModelBuilder(); var model1 = modelBuilder.Build(ProviderInfo); modelBuilder.Entity<OrderLine>().MapToStoredProcedures(); var model2 = new TestContext(); var dropProcedureOperations = new EdmModelDiffer().Diff(model2.GetModel(), model1.GetModel()) .OfType<DropProcedureOperation>() .ToList(); Assert.Equal(20, dropProcedureOperations.Count); Assert.True(dropProcedureOperations.All(c => c.Name.Any())); }
public void Can_detect_changed_modification_functions() { var commandTreeGenerator = new ModificationCommandTreeGenerator(TestContext.CreateDynamicUpdateModel()); var targetModel = new TestContext_v2().GetModel(); var alterProcedureOperations = new EdmModelDiffer() .Diff( new TestContext().GetModel(), targetModel, new Lazy<ModificationCommandTreeGenerator>(() => commandTreeGenerator), new SqlServerMigrationSqlGenerator()) .OfType<AlterProcedureOperation>() .ToList(); Assert.Equal(3, alterProcedureOperations.Count); Assert.True(alterProcedureOperations.All(c => c.BodySql.Any())); Assert.Equal(1, alterProcedureOperations.Count(c => c.Parameters.Any(p => p.Name == "key_for_update2"))); Assert.Equal(1, alterProcedureOperations.Count(c => c.Parameters.Any(p => p.Name == "affected_rows"))); }
public void Can_detect_added_modification_functions() { var modelBuilder = new DbModelBuilder(); var model1 = modelBuilder.Build(ProviderInfo); var model2 = new TestContext(); var commandTreeGenerator = new ModificationCommandTreeGenerator(TestContext.CreateDynamicUpdateModel()); var createProcedureOperations = new EdmModelDiffer() .Diff( model1.GetModel(), model2.GetModel(), new Lazy<ModificationCommandTreeGenerator>(() => commandTreeGenerator), new SqlServerMigrationSqlGenerator()) .OfType<CreateProcedureOperation>() .ToList(); Assert.Equal(20, createProcedureOperations.Count); Assert.True(createProcedureOperations.All(c => c.Name.Any())); Assert.True(createProcedureOperations.All(c => c.BodySql.Any())); }
public void Can_detect_changed_modification_functions_when_column_change_affects_parameter() { var commandTreeGenerator = new ModificationCommandTreeGenerator(TestContext.CreateDynamicUpdateModel()); var targetModel = new TestContext_v2c().GetModel(); var alterProcedureOperations = new EdmModelDiffer() .Diff( new TestContext().GetModel(), targetModel, new Lazy<ModificationCommandTreeGenerator>(() => commandTreeGenerator), new SqlServerMigrationSqlGenerator()) .OfType<AlterProcedureOperation>() .ToList(); Assert.Equal(2, alterProcedureOperations.Count); Assert.True(alterProcedureOperations.All(c => c.BodySql.Any())); Assert.True(alterProcedureOperations .SelectMany(a => a.Parameters).Any(p => p.Name == "Name" && p.MaxLength == 42)); }