Files
Umbraco-CMS/tests/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/AlterMigrationTests.cs
Bjarke Berg 0f1c2f7022 Ensure no management api for v12 (#14197)
* Remove management api

* Remove actual files
2023-05-04 13:32:41 +02:00

141 lines
3.8 KiB
C#

// Copyright (c) Umbraco.
// See LICENSE for more details.
using System.Diagnostics;
using System.Linq;
using Microsoft.Extensions.Logging;
using Moq;
using NUnit.Framework;
using Umbraco.Cms.Infrastructure.Migrations;
using Umbraco.Cms.Tests.Common.TestHelpers;
using Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Migrations.Stubs;
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Migrations;
[TestFixture]
public class AlterMigrationTests
{
private readonly ILogger<MigrationContext> _logger = Mock.Of<ILogger<MigrationContext>>();
private class TestPlan : MigrationPlan
{
public TestPlan()
: base("Test")
{
}
}
private MigrationContext GetMigrationContext(out TestDatabase db)
{
db = new TestDatabase();
return new MigrationContext(new TestPlan(), db, _logger);
}
[Test]
public void Drop_Foreign_Key()
{
// Arrange
var context = GetMigrationContext(out var database);
var stub = new DropForeignKeyMigrationStub(context);
// Act
stub.Run();
foreach (var op in database.Operations)
{
Console.WriteLine("{0}\r\n\t{1}", op.Text, op.Sql);
}
// Assert
Assert.That(database.Operations.Count, Is.EqualTo(1));
Assert.That(
database.Operations[0].Sql,
Is.EqualTo("ALTER TABLE [umbracoUser2app] DROP CONSTRAINT [FK_umbracoUser2app_umbracoUser_id]"));
}
[Test]
public void CreateColumn()
{
var context = GetMigrationContext(out var database);
var migration = new CreateColumnMigration(context);
migration.Run();
foreach (var op in database.Operations)
{
Console.WriteLine("{0}\r\n\t{1}", op.Text, op.Sql);
}
Assert.That(database.Operations.Count, Is.EqualTo(1));
Assert.That(
database.Operations[0].Sql,
Is.EqualTo("ALTER TABLE [bar] ADD [foo] UniqueIdentifier NOT NULL"));
}
public class CreateColumnMigration : MigrationBase
{
public CreateColumnMigration(IMigrationContext context)
: base(context)
{
}
protected override void Migrate() => Alter.Table("bar").AddColumn("foo").AsGuid().Do();
}
[Test]
public void AlterColumn()
{
var context = GetMigrationContext(out var database);
var migration = new AlterColumnMigration(context);
migration.Run();
foreach (var op in database.Operations)
{
Console.WriteLine("{0}\r\n\t{1}", op.Text, op.Sql);
}
Assert.That(database.Operations.Count, Is.EqualTo(1));
Assert.That(
database.Operations[0].Sql,
Is.EqualTo("ALTER TABLE [bar] ALTER COLUMN [foo] UniqueIdentifier NOT NULL"));
}
public class AlterColumnMigration : MigrationBase
{
public AlterColumnMigration(IMigrationContext context)
: base(context)
{
}
protected override void Migrate() =>
// bad/good syntax...
//// Alter.Column("foo").OnTable("bar").AsGuid().NotNullable();
Alter.Table("bar").AlterColumn("foo").AsGuid().NotNullable().Do();
}
[Ignore("this doesn't actually test anything")]
[Test]
public void Can_Get_Up_Migration_From_MigrationStub()
{
// Arrange
var context = GetMigrationContext(out var database);
var stub = new AlterUserTableMigrationStub(context);
// Act
stub.Run();
// Assert
Assert.That(database.Operations.Any(), Is.True);
// Console output
Debug.Print("Number of expressions in context: {0}", database.Operations.Count);
Debug.Print(string.Empty);
foreach (var expression in database.Operations)
{
Debug.Print(expression.ToString());
}
}
}