V10: fix build warnings in test projects (#12509)
* Run code cleanup * Dotnet format benchmarks project * Fix up Test.Common * Run dotnet format + manual cleanup * Run code cleanup for unit tests * Run dotnet format * Fix up errors * Manual cleanup of Unit test project * Update tests/Umbraco.Tests.Benchmarks/HexStringBenchmarks.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update tests/Umbraco.Tests.Integration/Testing/TestDbMeta.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update tests/Umbraco.Tests.Benchmarks/TypeFinderBenchmarks.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update tests/Umbraco.Tests.Integration/Testing/UmbracoIntegrationTest.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Update tests/Umbraco.Tests.Integration/Umbraco.Core/Events/EventAggregatorTests.cs Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> * Fix according to review * Fix after merge * Fix errors Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk> Co-authored-by: Mole <nikolajlauridsen@protonmail.ch> Co-authored-by: Zeegaan <nge@umbraco.dk>
This commit is contained in:
@@ -11,121 +11,117 @@ using Microsoft.Extensions.Logging;
|
||||
using Umbraco.Cms.Infrastructure.Persistence;
|
||||
|
||||
// ReSharper disable ConvertToUsingDeclaration
|
||||
namespace Umbraco.Cms.Tests.Integration.Testing
|
||||
namespace Umbraco.Cms.Tests.Integration.Testing;
|
||||
|
||||
/// <remarks>
|
||||
/// It's not meant to be pretty, rushed port of LocalDb.cs + LocalDbTestDatabase.cs
|
||||
/// </remarks>
|
||||
public class SqlServerTestDatabase : SqlServerBaseTestDatabase, ITestDatabase
|
||||
{
|
||||
/// <remarks>
|
||||
/// It's not meant to be pretty, rushed port of LocalDb.cs + LocalDbTestDatabase.cs
|
||||
/// </remarks>
|
||||
public class SqlServerTestDatabase : SqlServerBaseTestDatabase, ITestDatabase
|
||||
public const string DatabaseName = "UmbracoTests";
|
||||
private readonly TestDatabaseSettings _settings;
|
||||
|
||||
public SqlServerTestDatabase(TestDatabaseSettings settings, ILoggerFactory loggerFactory, IUmbracoDatabaseFactory databaseFactory)
|
||||
{
|
||||
private readonly TestDatabaseSettings _settings;
|
||||
public const string DatabaseName = "UmbracoTests";
|
||||
_loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
|
||||
_databaseFactory = databaseFactory ?? throw new ArgumentNullException(nameof(databaseFactory));
|
||||
|
||||
public SqlServerTestDatabase(TestDatabaseSettings settings, ILoggerFactory loggerFactory,
|
||||
IUmbracoDatabaseFactory databaseFactory)
|
||||
_settings = settings;
|
||||
|
||||
var counter = 0;
|
||||
|
||||
var schema = Enumerable.Range(0, _settings.SchemaDatabaseCount)
|
||||
.Select(x => TestDbMeta.CreateWithMasterConnectionString($"{DatabaseName}-{++counter}", false, _settings.SQLServerMasterConnectionString));
|
||||
|
||||
var empty = Enumerable.Range(0, _settings.EmptyDatabasesCount)
|
||||
.Select(x => TestDbMeta.CreateWithMasterConnectionString($"{DatabaseName}-{++counter}", true, _settings.SQLServerMasterConnectionString));
|
||||
|
||||
_testDatabases = schema.Concat(empty).ToList();
|
||||
}
|
||||
|
||||
protected override void Initialize()
|
||||
{
|
||||
_prepareQueue = new BlockingCollection<TestDbMeta>();
|
||||
_readySchemaQueue = new BlockingCollection<TestDbMeta>();
|
||||
_readyEmptyQueue = new BlockingCollection<TestDbMeta>();
|
||||
|
||||
foreach (var meta in _testDatabases)
|
||||
{
|
||||
_loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
|
||||
_databaseFactory = databaseFactory ?? throw new ArgumentNullException(nameof(databaseFactory));
|
||||
|
||||
_settings = settings;
|
||||
|
||||
var counter = 0;
|
||||
|
||||
var schema = Enumerable.Range(0, _settings.SchemaDatabaseCount)
|
||||
.Select(x => TestDbMeta.CreateWithMasterConnectionString($"{DatabaseName}-{++counter}", false,
|
||||
_settings.SQLServerMasterConnectionString));
|
||||
|
||||
var empty = Enumerable.Range(0, _settings.EmptyDatabasesCount)
|
||||
.Select(x => TestDbMeta.CreateWithMasterConnectionString($"{DatabaseName}-{++counter}", true,
|
||||
_settings.SQLServerMasterConnectionString));
|
||||
|
||||
_testDatabases = schema.Concat(empty).ToList();
|
||||
CreateDatabase(meta);
|
||||
_prepareQueue.Add(meta);
|
||||
}
|
||||
|
||||
protected override void Initialize()
|
||||
for (var i = 0; i < _settings.PrepareThreadCount; i++)
|
||||
{
|
||||
_prepareQueue = new BlockingCollection<TestDbMeta>();
|
||||
_readySchemaQueue = new BlockingCollection<TestDbMeta>();
|
||||
_readyEmptyQueue = new BlockingCollection<TestDbMeta>();
|
||||
var thread = new Thread(PrepareDatabase);
|
||||
thread.Start();
|
||||
}
|
||||
}
|
||||
|
||||
foreach (TestDbMeta meta in _testDatabases)
|
||||
{
|
||||
CreateDatabase(meta);
|
||||
_prepareQueue.Add(meta);
|
||||
}
|
||||
private void CreateDatabase(TestDbMeta meta)
|
||||
{
|
||||
Drop(meta);
|
||||
|
||||
for (int i = 0; i < _settings.PrepareThreadCount; i++)
|
||||
using (var connection = new SqlConnection(_settings.SQLServerMasterConnectionString))
|
||||
{
|
||||
connection.Open();
|
||||
using (var command = connection.CreateCommand())
|
||||
{
|
||||
var thread = new Thread(PrepareDatabase);
|
||||
thread.Start();
|
||||
SetCommand(command, $@"CREATE DATABASE {LocalDb.QuotedName(meta.Name)}");
|
||||
command.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void CreateDatabase(TestDbMeta meta)
|
||||
private void Drop(TestDbMeta meta)
|
||||
{
|
||||
using (var connection = new SqlConnection(_settings.SQLServerMasterConnectionString))
|
||||
{
|
||||
Drop(meta);
|
||||
|
||||
using (var connection = new SqlConnection(_settings.SQLServerMasterConnectionString))
|
||||
connection.Open();
|
||||
using (var command = connection.CreateCommand())
|
||||
{
|
||||
connection.Open();
|
||||
using (SqlCommand command = connection.CreateCommand())
|
||||
SetCommand(command, "select count(1) from sys.databases where name = @0", meta.Name);
|
||||
var records = (int)command.ExecuteScalar();
|
||||
if (records == 0)
|
||||
{
|
||||
SetCommand(command, $@"CREATE DATABASE {LocalDb.QuotedName(meta.Name)}");
|
||||
command.ExecuteNonQuery();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Drop(TestDbMeta meta)
|
||||
{
|
||||
using (var connection = new SqlConnection(_settings.SQLServerMasterConnectionString))
|
||||
{
|
||||
connection.Open();
|
||||
using (SqlCommand command = connection.CreateCommand())
|
||||
{
|
||||
SetCommand(command, "select count(1) from sys.databases where name = @0", meta.Name);
|
||||
var records = (int)command.ExecuteScalar();
|
||||
if (records == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
string sql = $@"
|
||||
var sql = $@"
|
||||
ALTER DATABASE {LocalDb.QuotedName(meta.Name)}
|
||||
SET SINGLE_USER
|
||||
WITH ROLLBACK IMMEDIATE";
|
||||
SetCommand(command, sql);
|
||||
command.ExecuteNonQuery();
|
||||
SetCommand(command, sql);
|
||||
command.ExecuteNonQuery();
|
||||
|
||||
SetCommand(command, $@"DROP DATABASE {LocalDb.QuotedName(meta.Name)}");
|
||||
command.ExecuteNonQuery();
|
||||
}
|
||||
SetCommand(command, $@"DROP DATABASE {LocalDb.QuotedName(meta.Name)}");
|
||||
command.ExecuteNonQuery();
|
||||
}
|
||||
}
|
||||
|
||||
public override void TearDown()
|
||||
{
|
||||
if (_prepareQueue == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_prepareQueue.CompleteAdding();
|
||||
while (_prepareQueue.TryTake(out _))
|
||||
{
|
||||
}
|
||||
|
||||
_readyEmptyQueue.CompleteAdding();
|
||||
while (_readyEmptyQueue.TryTake(out _))
|
||||
{
|
||||
}
|
||||
|
||||
_readySchemaQueue.CompleteAdding();
|
||||
while (_readySchemaQueue.TryTake(out _))
|
||||
{
|
||||
}
|
||||
|
||||
Parallel.ForEach(_testDatabases, Drop);
|
||||
}
|
||||
}
|
||||
|
||||
public override void TearDown()
|
||||
{
|
||||
if (_prepareQueue == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
_prepareQueue.CompleteAdding();
|
||||
while (_prepareQueue.TryTake(out _))
|
||||
{
|
||||
}
|
||||
|
||||
_readyEmptyQueue.CompleteAdding();
|
||||
while (_readyEmptyQueue.TryTake(out _))
|
||||
{
|
||||
}
|
||||
|
||||
_readySchemaQueue.CompleteAdding();
|
||||
while (_readySchemaQueue.TryTake(out _))
|
||||
{
|
||||
}
|
||||
|
||||
Parallel.ForEach(_testDatabases, Drop);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user