public void Can_create_columns_with_default_values_for_all_types() { ResetDatabase(); var migrator = CreateMigrator <ShopContext_v1>(); migrator.Update(); var defaultValuesMigration = new DefaultValuesMigration(); var createTableOperation = (CreateTableOperation)defaultValuesMigration.GetOperations().Single(); WhenSqlCe( () => { createTableOperation.Columns.Remove(createTableOperation.Columns.Single(c => c.Name == "DateTimeOffset")); createTableOperation.Columns.Remove(createTableOperation.Columns.Single(c => c.Name == "Time")); }); migrator = CreateMigrator <ShopContext_v1>(defaultValuesMigration); migrator.Update(); var table = Info.Tables.Single(t => t.Name == "DefaultValues"); Assert.True(table.Columns.Any(c => c.Name == "Binary" && c.Default.Contains("0x"))); Assert.True(table.Columns.Any(c => c.Name == "Boolean" && c.Default.Contains("1"))); Assert.True(table.Columns.Any(c => c.Name == "Byte" && c.Default.Contains("42"))); Assert.True(table.Columns.Any(c => c.Name == "DateTime" && c.Default.Contains("'0001-01-01T00:00:00.000'"))); Assert.True(table.Columns.Any(c => c.Name == "Decimal" && c.Default.Contains("42.23"))); Assert.True(table.Columns.Any(c => c.Name == "Double" && c.Default.Contains("123.45"))); Assert.True(table.Columns.Any(c => c.Name == "Guid" && c.Default.Contains("'00000000-0000-0000-0000-000000000000'"))); Assert.True(table.Columns.Any(c => c.Name == "Int" && c.Default.Contains("0"))); Assert.True(table.Columns.Any(c => c.Name == "Long" && c.Default.Contains("3456789"))); Assert.True(table.Columns.Any(c => c.Name == "Short" && c.Default.Contains("256"))); Assert.True(table.Columns.Any(c => c.Name == "Single" && c.Default.Contains("234.999"))); Assert.True(table.Columns.Any(c => c.Name == "String" && c.Default.Contains("''"))); WhenNotSqlCe( () => { Assert.True(table.Columns.Any(c => c.Name == "DateTimeOffset" && c.Default == "('0001-01-01T00:00:00.000+00:00')")); Assert.True(table.Columns.Any(c => c.Name == "Time" && c.Default == "('00:00:00')")); }); }
public void Can_create_columns_with_default_values_for_all_types() { ResetDatabase(); var migrator = CreateMigrator<ShopContext_v1>(); migrator.Update(); var defaultValuesMigration = new DefaultValuesMigration(); var createTableOperation = (CreateTableOperation)defaultValuesMigration.GetOperations().Single(); WhenSqlCe( () => { createTableOperation.Columns.Remove(createTableOperation.Columns.Single(c => c.Name == "DateTimeOffset")); createTableOperation.Columns.Remove(createTableOperation.Columns.Single(c => c.Name == "Time")); }); migrator = CreateMigrator<ShopContext_v1>(defaultValuesMigration); migrator.Update(); var table = Info.Tables.Single(t => t.Name == "DefaultValues"); Assert.True(table.Columns.Any(c => c.Name == "Binary" && c.Default.Contains("0x"))); Assert.True(table.Columns.Any(c => c.Name == "Boolean" && c.Default.Contains('1'))); Assert.True(table.Columns.Any(c => c.Name == "Byte" && c.Default.Contains("42"))); Assert.True(table.Columns.Any(c => c.Name == "DateTime" && c.Default.Contains("'0001-01-01T00:00:00.000'"))); Assert.True(table.Columns.Any(c => c.Name == "Decimal" && c.Default.Contains("42.23"))); Assert.True(table.Columns.Any(c => c.Name == "Double" && c.Default.Contains("123.45"))); Assert.True(table.Columns.Any(c => c.Name == "Guid" && c.Default.Contains("'00000000-0000-0000-0000-000000000000'"))); Assert.True(table.Columns.Any(c => c.Name == "Int" && c.Default.Contains("0"))); Assert.True(table.Columns.Any(c => c.Name == "Long" && c.Default.Contains("3456789"))); Assert.True(table.Columns.Any(c => c.Name == "Short" && c.Default.Contains("256"))); Assert.True(table.Columns.Any(c => c.Name == "Single" && c.Default.Contains("234.999"))); Assert.True(table.Columns.Any(c => c.Name == "String" && c.Default.Contains("''"))); WhenNotSqlCe( () => { Assert.True(table.Columns.Any(c => c.Name == "DateTimeOffset" && c.Default == "('0001-01-01T00:00:00.000+00:00')")); Assert.True(table.Columns.Any(c => c.Name == "Time" && c.Default == "('00:00:00')")); }); }