public void Key_searching_is_case_insensitive() { var config = new Configuration { new MemoryConfigurationSource { { "entityFramework:" + typeof(MyContext).Name + ":connectionString", "Data Source=MyConnectionString" } } }; var rawOptions = new DbContextOptionsParser().ReadRawOptions(config, typeof(MyContext), new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)); Assert.Equal(1, rawOptions.Count); Assert.Equal("Data Source=MyConnectionString", rawOptions["ConnectionString"]); }
public void Connection_string_is_found_using_context_full_name_generic() { var config = new Configuration { new MemoryConfigurationSource { { "EntityFramework:" + typeof(MyContext).FullName + ":ConnectionString", "Data Source=MyConnectionString" } } }; var rawOptions = new DbContextOptionsParser().ReadRawOptions <MyContext>(config, new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)); Assert.Equal(1, rawOptions.Count); Assert.Equal("Data Source=MyConnectionString", rawOptions["ConnectionString"]); }
public void Indirect_connection_string_can_be_specified_with_name() { var config = new Configuration { new MemoryConfigurationSource { { "Data:DefaultConnection:ConnectionString", "Data Source=MyConnectionString" }, { "EntityFramework:" + typeof(MyContext).Name + ":ConnectionString", "Name=Data:DefaultConnection:ConnectionString" } } }; var rawOptions = new DbContextOptionsParser().ReadRawOptions(config, typeof(MyContext), new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)); Assert.Equal(1, rawOptions.Count); Assert.Equal("Data Source=MyConnectionString", rawOptions["ConnectionString"]); }
public void For_same_key_context_full_name_takes_precedence_over_context_name() { var config = new Configuration { new MemoryConfigurationSource { { "EntityFramework:" + typeof(MyContext).Name + ":ConnectionString", "Data Source=ContextNameConnectionString" }, { "EntityFramework:" + typeof(MyContext).FullName + ":ConnectionString", "Data Source=ContextFullNameConnectionString" } } }; var rawOptions = new DbContextOptionsParser().ReadRawOptions(config, typeof(MyContext), new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)); Assert.Equal(1, rawOptions.Count); Assert.Equal("Data Source=ContextFullNameConnectionString", rawOptions["ConnectionString"]); }
public void Indirect_connection_string_must_have_only_one_equal_sign() { var config = new Configuration { new MemoryConfigurationSource { { "Data:DefaultConnection:ConnectionString", "Data Source=MyConnectionString" }, { "EntityFramework:" + typeof(MyContext).Name + ":ConnectionString", "Name=Data:DefaultConnection:ConnectionString;Key=Value" } } }; var rawOptions = new DbContextOptionsParser().ReadRawOptions(config, typeof(MyContext), new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)); Assert.Equal(1, rawOptions.Count); Assert.Equal("Name=Data:DefaultConnection:ConnectionString;Key=Value", rawOptions["ConnectionString"]); }
public void Existing_options_are_updated_generic() { var config = new Configuration { new MemoryConfigurationSource { { "EntityFramework:" + typeof(MyContext).Name + ":ConnectionString", "Data Source=MyConnectionString" } } }; var currentOptions = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase) { { "Foo", "Goo" } }; var rawOptions = new DbContextOptionsParser().ReadRawOptions <MyContext>(config, currentOptions); Assert.Equal(2, rawOptions.Count); Assert.Equal("Data Source=MyConnectionString", rawOptions["ConnectionString"]); Assert.Equal("Goo", rawOptions["Foo"]); }
public void Nested_keys_are_read_using_context_full_name_generic() { var config = new Configuration { new MemoryConfigurationSource { { "EntityFramework:" + typeof(MyContext).FullName + ":ConnectionString", "Data Source=MyConnectionString" }, { "EntityFramework:" + typeof(MyContext).FullName + ":SqlServer:MaxBatchSize", "1" }, { "EntityFramework:" + typeof(MyContext).FullName + ":SqlServer:AnotherSqlServerOption", "SqlServerOptionValue" }, { "EntityFramework:" + typeof(MyContext).FullName + ":SomeProvider:ProviderSpecificOption", "OptionValue" }, { "EntityFramework:" + typeof(MyContext).FullName + ":Level1:Level2:Level3", "NestedLevelValue" } } }; var rawOptions = new DbContextOptionsParser().ReadRawOptions <MyContext>(config, new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)); Assert.Equal(5, rawOptions.Count); Assert.Equal("Data Source=MyConnectionString", rawOptions["ConnectionString"]); Assert.Equal("1", rawOptions["SqlServer:MaxBatchSize"]); Assert.Equal("SqlServerOptionValue", rawOptions["SqlServer:AnotherSqlServerOption"]); Assert.Equal("OptionValue", rawOptions["SomeProvider:ProviderSpecificOption"]); Assert.Equal("NestedLevelValue", rawOptions["Level1:Level2:Level3"]); }
public void Uses_connection_string_from_last_loaded_configuration() { var iniConfigFileContent = @"[EntityFramework] " + typeof(MyContext).Name + ":ConnectionString =Data Source=IniConnectionString"; var iniConfigFilePath = Path.GetTempFileName(); File.WriteAllText(iniConfigFilePath, iniConfigFileContent); var memConfig = new MemoryConfigurationSource { { "EntityFramework:" + typeof(MyContext).Name + ":ConnectionString", "Data Source=MemoryConnectionString" } }; var config = new Configuration(); config.Add(memConfig); config.AddIniFile(iniConfigFilePath); var rawOptions = new DbContextOptionsParser().ReadRawOptions(config, typeof(MyContext), new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase)); Assert.Equal(1, rawOptions.Count); Assert.Equal("Data Source=IniConnectionString", rawOptions["ConnectionString"]); }