using Bit.Core.Settings; using Xunit; namespace Bit.Core.Test.Settings; public class GlobalSettingsTests { public class SqlSettingsTests { private const string _testingConnectionString = "Server=server;Database=database;User Id=user;Password=password;"; private const string _testingReadOnlyConnectionString = "Server=server_read;Database=database_read;User Id=user_read;Password=password_read;"; [Fact] public void ConnectionString_ValueInDoubleQuotes_Stripped() { var settings = new GlobalSettings.SqlSettings { ConnectionString = $"\"{_testingConnectionString}\"", }; Assert.Equal(_testingConnectionString, settings.ConnectionString); } [Fact] public void ConnectionString_ValueWithoutDoubleQuotes_TheSameValue() { var settings = new GlobalSettings.SqlSettings { ConnectionString = _testingConnectionString }; Assert.Equal(_testingConnectionString, settings.ConnectionString); } [Fact] public void ConnectionString_SetTwice_ReturnsSecondConnectionString() { var settings = new GlobalSettings.SqlSettings { ConnectionString = _testingConnectionString }; Assert.Equal(_testingConnectionString, settings.ConnectionString); var newConnectionString = $"{_testingConnectionString}_new"; settings.ConnectionString = newConnectionString; Assert.Equal(newConnectionString, settings.ConnectionString); } [Fact] public void ReadOnlyConnectionString_ValueInDoubleQuotes_Stripped() { var settings = new GlobalSettings.SqlSettings { ReadOnlyConnectionString = $"\"{_testingReadOnlyConnectionString}\"", }; Assert.Equal(_testingReadOnlyConnectionString, settings.ReadOnlyConnectionString); } [Fact] public void ReadOnlyConnectionString_ValueWithoutDoubleQuotes_TheSameValue() { var settings = new GlobalSettings.SqlSettings { ReadOnlyConnectionString = _testingReadOnlyConnectionString }; Assert.Equal(_testingReadOnlyConnectionString, settings.ReadOnlyConnectionString); } [Fact] public void ReadOnlyConnectionString_NotSet_DefaultsToConnectionString() { var settings = new GlobalSettings.SqlSettings { ConnectionString = _testingConnectionString }; Assert.Equal(_testingConnectionString, settings.ReadOnlyConnectionString); } [Fact] public void ReadOnlyConnectionString_Set_ReturnsReadOnlyConnectionString() { var settings = new GlobalSettings.SqlSettings { ConnectionString = _testingConnectionString, ReadOnlyConnectionString = _testingReadOnlyConnectionString }; Assert.Equal(_testingReadOnlyConnectionString, settings.ReadOnlyConnectionString); } [Fact] public void ReadOnlyConnectionString_SetTwice_ReturnsSecondReadOnlyConnectionString() { var settings = new GlobalSettings.SqlSettings { ConnectionString = _testingConnectionString, ReadOnlyConnectionString = _testingReadOnlyConnectionString }; Assert.Equal(_testingReadOnlyConnectionString, settings.ReadOnlyConnectionString); var newReadOnlyConnectionString = $"{_testingReadOnlyConnectionString}_new"; settings.ReadOnlyConnectionString = newReadOnlyConnectionString; Assert.Equal(newReadOnlyConnectionString, settings.ReadOnlyConnectionString); } [Fact] public void ReadOnlyConnectionString_NotSetAndConnectionStringSetTwice_ReturnsSecondConnectionString() { var settings = new GlobalSettings.SqlSettings { ConnectionString = _testingConnectionString }; Assert.Equal(_testingConnectionString, settings.ReadOnlyConnectionString); var newConnectionString = $"{_testingConnectionString}_new"; settings.ConnectionString = newConnectionString; Assert.Equal(newConnectionString, settings.ReadOnlyConnectionString); } [Fact] public void ReadOnlyConnectionString_SetAndConnectionStringSetTwice_ReturnsReadOnlyConnectionString() { var settings = new GlobalSettings.SqlSettings { ConnectionString = _testingConnectionString, ReadOnlyConnectionString = _testingReadOnlyConnectionString }; Assert.Equal(_testingReadOnlyConnectionString, settings.ReadOnlyConnectionString); var newConnectionString = $"{_testingConnectionString}_new"; settings.ConnectionString = newConnectionString; Assert.Equal(_testingReadOnlyConnectionString, settings.ReadOnlyConnectionString); } } }