using System.Globalization; using System.Linq; using Microsoft.EntityFrameworkCore; using Xunit; namespace EFCore.NamingConventions.Test { public class LowerCaseNamingTest : RewriterTestBase { [Fact] public void Table_name_is_rewritten() { using var context = CreateContext(); var entityType = context.Model.FindEntityType(typeof(SimpleBlog)); Assert.Equal("simpleblog", entityType.GetTableName()); } [Fact] public void Column_name_is_rewritten() { using var context = CreateContext(); var entityType = context.Model.FindEntityType(typeof(SimpleBlog)); Assert.Equal("id", entityType.FindProperty("Id").GetColumnName()); Assert.Equal("fullname", entityType.FindProperty("FullName").GetColumnName()); } [Fact] public void Column_name_is_rewritten_in_turkish() { using var context = CreateContext(CultureInfo.CreateSpecificCulture("tr-TR")); var entityType = context.Model.FindEntityType(typeof(SimpleBlog)); Assert.Equal("ıd", entityType.FindProperty("Id").GetColumnName()); Assert.Equal("fullname", entityType.FindProperty("FullName").GetColumnName()); } [Fact] public void Column_name_is_rewritten_in_invariant() { using var context = CreateContext(CultureInfo.InvariantCulture); var entityType = context.Model.FindEntityType(typeof(SimpleBlog)); Assert.Equal("id", entityType.FindProperty("Id").GetColumnName()); Assert.Equal("fullname", entityType.FindProperty("FullName").GetColumnName()); } [Fact] public void Primary_key_name_is_rewritten() { using var context = CreateContext(); var entityType = context.Model.FindEntityType(typeof(SimpleBlog)); Assert.Equal("pk_simpleblog", entityType.GetKeys().Single(k => k.IsPrimaryKey()).GetName()); } [Fact] public void Alternative_key_name_is_rewritten() { using var context = CreateContext(); var entityType = context.Model.FindEntityType(typeof(SimpleBlog)); Assert.Equal("ak_simpleblog_somealternativekey", entityType.GetKeys().Single(k => !k.IsPrimaryKey()).GetName()); } [Fact] public void Foreign_key_name_is_rewritten() { using var context = CreateContext(); var entityType = context.Model.FindEntityType(typeof(Post)); Assert.Equal("fk_post_simpleblog_blogid", entityType.GetForeignKeys().Single().GetConstraintName()); } [Fact] public void Index_name_is_rewritten() { using var context = CreateContext(); var entityType = context.Model.FindEntityType(typeof(SimpleBlog)); Assert.Equal("ix_simpleblog_fullname", entityType.GetIndexes().Single().GetDatabaseName()); } TestContext CreateContext(CultureInfo culture = null) => new TestContext(builder => builder.UseLowerCaseNamingConvention(culture)); } }