Merge branch 'release/10.5' into v10/dev

This commit is contained in:
Nikolaj
2023-04-13 08:47:41 +02:00
17 changed files with 284 additions and 9 deletions

View File

@@ -0,0 +1,37 @@
using NUnit.Framework;
using Umbraco.Cms.Core.Install.Models;
using Umbraco.Cms.Persistence.SqlServer.Services;
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Cms.Persistence.SqlServer;
[TestFixture]
public class SqlAzureDatabaseProviderMetadataTests
{
[Test]
[TestCase("myServer", "myDatabase", "myLogin", "myPassword", true /*ignored*/, ExpectedResult = "Server=tcp:myServer.database.windows.net,1433;Database=myDatabase;User ID=myLogin@myServer;Password=myPassword")]
[TestCase("myServer", "myDatabase", "myLogin", "myPassword", false, ExpectedResult = "Server=tcp:myServer.database.windows.net,1433;Database=myDatabase;User ID=myLogin@myServer;Password=myPassword")]
public string GenerateConnectionString(string server, string databaseName, string login, string password, bool integratedAuth)
{
var sut = new SqlAzureDatabaseProviderMetadata();
return sut.GenerateConnectionString(new DatabaseModel()
{
DatabaseName = databaseName,
Login = login,
Password = password,
Server = server,
IntegratedAuth = integratedAuth
});
}
[Test]
[TestCase("Server=myServer;Database=myDatabase;Integrated Security=true", ExpectedResult = false)] // SqlServer
[TestCase("Server=myServer;Database=myDatabase;User Id=myLogin;Password=myPassword", ExpectedResult = false)] // SqlServer
[TestCase("Server=tcp:cmstest27032000.database.windows.net,1433;Database=test_27032000;User ID=asdasdas@cmstest27032000;Password=123456879", ExpectedResult = true)] // Azure
[TestCase("Data Source=|DataDirectory|/Umbraco.sqlite.db;Cache=Shared;Foreign Keys=True;Pooling=True", ExpectedResult = false)] // Sqlite
[TestCase("Data Source=(LocalDb)\\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\\umbraco.mdf", ExpectedResult = false)] // localDB
public bool CanRecognizeConnectionString(string connectionString)
{
var sut = new SqlAzureDatabaseProviderMetadata();
return sut.CanRecognizeConnectionString(connectionString);
}
}

View File

@@ -0,0 +1,37 @@
using NUnit.Framework;
using Umbraco.Cms.Core.Install.Models;
using Umbraco.Cms.Persistence.SqlServer.Services;
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Cms.Persistence.SqlServer;
[TestFixture]
public class SqlLocalDbDatabaseProviderMetadataTests
{
[Test]
[TestCase("ignored", "myDatabase", "ignored", "ignored", true, ExpectedResult = "Data Source=(localdb)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\myDatabase.mdf;Integrated Security=True")]
[TestCase("ignored", "myDatabase2", "ignored", "ignored", false /*ignored*/, ExpectedResult = "Data Source=(localdb)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\myDatabase2.mdf;Integrated Security=True")]
public string GenerateConnectionString(string server, string databaseName, string login, string password, bool integratedAuth)
{
var sut = new SqlLocalDbDatabaseProviderMetadata();
return sut.GenerateConnectionString(new DatabaseModel()
{
DatabaseName = databaseName,
Login = login,
Password = password,
Server = server,
IntegratedAuth = integratedAuth,
});
}
[Test]
[TestCase("Server=myServer;Database=myDatabase;Integrated Security=true", ExpectedResult = false)] // SqlServer
[TestCase("Server=myServer;Database=myDatabase;User Id=myLogin;Password=myPassword", ExpectedResult = false)] // SqlServer
[TestCase("Server=tcp:cmstest27032000.database.windows.net,1433;Database=test_27032000;User ID=asdasdas@cmstest27032000;Password=123456879", ExpectedResult = false)] // Azure
[TestCase("Data Source=|DataDirectory|/Umbraco.sqlite.db;Cache=Shared;Foreign Keys=True;Pooling=True", ExpectedResult = false)] // Sqlite
[TestCase("Data Source=(LocalDb)\\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\\umbraco.mdf", ExpectedResult = true)] // localDB
public bool CanRecognizeConnectionString(string connectionString)
{
var sut = new SqlLocalDbDatabaseProviderMetadata();
return sut.CanRecognizeConnectionString(connectionString);
}
}

View File

@@ -0,0 +1,37 @@
using NUnit.Framework;
using Umbraco.Cms.Core.Install.Models;
using Umbraco.Cms.Persistence.SqlServer.Services;
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Cms.Persistence.SqlServer;
[TestFixture]
public class SqlServerDatabaseProviderMetadataTests
{
[Test]
[TestCase("myServer", "myDatabase", "myLogin", "myPassword", true, ExpectedResult = "Server=myServer;Database=myDatabase;Integrated Security=true")]
[TestCase("myServer", "myDatabase", "myLogin", "myPassword", false, ExpectedResult = "Server=myServer;Database=myDatabase;User Id=myLogin;Password=myPassword")]
public string GenerateConnectionString(string server, string databaseName, string login, string password, bool integratedAuth)
{
var sut = new SqlServerDatabaseProviderMetadata();
return sut.GenerateConnectionString(new DatabaseModel()
{
DatabaseName = databaseName,
Login = login,
Password = password,
Server = server,
IntegratedAuth = integratedAuth
});
}
[Test]
[TestCase("Server=myServer;Database=myDatabase;Integrated Security=true", ExpectedResult = true)] // SqlServer
[TestCase("Server=myServer;Database=myDatabase;User Id=myLogin;Password=myPassword", ExpectedResult = true)] // SqlServer
[TestCase("Server=tcp:cmstest27032000.database.windows.net,1433;Database=test_27032000;User ID=asdasdas@cmstest27032000;Password=123456879", ExpectedResult = true)] // Azure
[TestCase("Data Source=|DataDirectory|/Umbraco.sqlite.db;Cache=Shared;Foreign Keys=True;Pooling=True", ExpectedResult = false)] // Sqlite
[TestCase("Data Source=(LocalDb)\\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\\umbraco.mdf", ExpectedResult = false)] // localDB
public bool CanRecognizeConnectionString(string connectionString)
{
var sut = new SqlServerDatabaseProviderMetadata();
return sut.CanRecognizeConnectionString(connectionString);
}
}

View File

@@ -0,0 +1,37 @@
using NUnit.Framework;
using Umbraco.Cms.Core.Install.Models;
using Umbraco.Cms.Persistence.Sqlite.Services;
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Cms.Persistence.Sqlite;
[TestFixture]
public class SqliteDatabaseProviderMetadataTests
{
[Test]
[TestCase("ignored", "myDatabase", "ignored", "ignored", true /*ignored*/, ExpectedResult = "Data Source=|DataDirectory|/myDatabase.sqlite.db;Cache=Shared;Foreign Keys=True;Pooling=True")]
[TestCase("ignored", "myDatabase2", "ignored", "ignored", false /*ignored*/, ExpectedResult = "Data Source=|DataDirectory|/myDatabase2.sqlite.db;Cache=Shared;Foreign Keys=True;Pooling=True")]
public string GenerateConnectionString(string server, string databaseName, string login, string password, bool integratedAuth)
{
var sut = new SqliteDatabaseProviderMetadata();
return sut.GenerateConnectionString(new DatabaseModel()
{
DatabaseName = databaseName,
Login = login,
Password = password,
Server = server,
IntegratedAuth = integratedAuth
});
}
[Test]
[TestCase("Server=myServer;Database=myDatabase;Integrated Security=true", ExpectedResult = false)] // SqlServer
[TestCase("Server=myServer;Database=myDatabase;User Id=myLogin;Password=myPassword", ExpectedResult = false)] // SqlServer
[TestCase("Server=tcp:cmstest27032000.database.windows.net,1433;Database=test_27032000;User ID=asdasdas@cmstest27032000;Password=123456879", ExpectedResult = false)] // Azure
[TestCase("Data Source=|DataDirectory|/Umbraco.sqlite.db;Cache=Shared;Foreign Keys=True;Pooling=True", ExpectedResult = true)] // Sqlite
[TestCase("Data Source=(LocalDb)\\MSSQLLocalDB;Initial Catalog=aspnet-MvcMovie;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\\umbraco.mdf", ExpectedResult = false)] // localDB
public bool CanRecognizeConnectionString(string connectionString)
{
var sut = new SqliteDatabaseProviderMetadata();
return sut.CanRecognizeConnectionString(connectionString);
}
}

View File

@@ -177,6 +177,8 @@ public class DatabaseSettingsFactoryTests
public Func<DatabaseModel, string> GenerateConnectionStringDelegate { get; set; } =
_ => "ConnectionString";
public bool CanRecognizeConnectionString(string? connectionString) => false;
public string? GenerateConnectionString(DatabaseModel databaseModel) => GenerateConnectionStringDelegate(databaseModel);
}
}

View File

@@ -16,6 +16,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\Umbraco.Cms.Persistence.Sqlite\Umbraco.Cms.Persistence.Sqlite.csproj" />
<ProjectReference Include="..\Umbraco.Tests.Common\Umbraco.Tests.Common.csproj" />
<ProjectReference Include="..\..\src\Umbraco.Cms.ManagementApi\Umbraco.Cms.ManagementApi.csproj" />
<ProjectReference Include="..\..\src\Umbraco.PublishedCache.NuCache\Umbraco.PublishedCache.NuCache.csproj" />