Browse Source

Tests fixed.

pull/403/head
Sebastian Stehle 7 years ago
parent
commit
3e340fa73b
  1. 54
      tests/Squidex.Infrastructure.Tests/Migrations/MigratorTests.cs

54
tests/Squidex.Infrastructure.Tests/Migrations/MigratorTests.cs

@ -89,19 +89,16 @@ namespace Squidex.Infrastructure.Migrations
await sut.MigrateAsync();
A.CallTo(() => migrator_0_1.UpdateAsync())
.MustHaveHappened();
A.CallTo(() => migrator_1_2.UpdateAsync())
.MustHaveHappened();
A.CallTo(() => migrator_2_3.UpdateAsync())
.MustHaveHappened();
A.CallTo(() => migrator_0_1.UpdateAsync()).MustHaveHappened();
A.CallTo(() => migrator_1_2.UpdateAsync()).MustHaveHappened();
A.CallTo(() => migrator_2_3.UpdateAsync()).MustHaveHappened();
A.CallTo(() => status.UnlockAsync(3))
.MustHaveHappened();
}
[Fact]
public async Task Should_unlock_when_failed()
public async Task Should_unlock_when_migration_failed()
{
var migrator_0_1 = BuildMigration(0, 1);
var migrator_1_2 = BuildMigration(1, 2);
@ -111,34 +108,15 @@ namespace Squidex.Infrastructure.Migrations
A.CallTo(() => migrator_1_2.UpdateAsync()).Throws(new ArgumentException());
await Assert.ThrowsAsync<ArgumentException>(sut.MigrateAsync);
await Assert.ThrowsAsync<MigrationFailedException>(sut.MigrateAsync);
A.CallTo(() => migrator_0_1.UpdateAsync())
.MustHaveHappened();
A.CallTo(() => migrator_1_2.UpdateAsync())
.MustHaveHappened();
A.CallTo(() => migrator_2_3.UpdateAsync())
.MustNotHaveHappened();
A.CallTo(() => migrator_0_1.UpdateAsync()).MustHaveHappened();
A.CallTo(() => migrator_1_2.UpdateAsync()).MustHaveHappened();
A.CallTo(() => migrator_2_3.UpdateAsync()).MustNotHaveHappened();
A.CallTo(() => status.UnlockAsync(0)).MustHaveHappened();
}
[Fact]
public async Task Should_prevent_multiple_updates()
{
var migrator_0_1 = BuildMigration(0, 1);
var migrator_1_2 = BuildMigration(1, 2);
var sut = new Migrator(new InMemoryStatus(), path, log) { LockWaitMs = 2 };
await Task.WhenAll(Enumerable.Repeat(0, 10).Select(x => Task.Run(sut.MigrateAsync)));
A.CallTo(() => migrator_0_1.UpdateAsync())
.MustHaveHappened(1, Times.Exactly);
A.CallTo(() => migrator_1_2.UpdateAsync())
.MustHaveHappened(1, Times.Exactly);
}
[Fact]
public async Task Should_log_exception_when_migration_failed()
{
@ -161,6 +139,22 @@ namespace Squidex.Infrastructure.Migrations
.MustNotHaveHappened();
}
[Fact]
public async Task Should_prevent_multiple_updates()
{
var migrator_0_1 = BuildMigration(0, 1);
var migrator_1_2 = BuildMigration(1, 2);
var sut = new Migrator(new InMemoryStatus(), path, log) { LockWaitMs = 2 };
await Task.WhenAll(Enumerable.Repeat(0, 10).Select(x => Task.Run(sut.MigrateAsync)));
A.CallTo(() => migrator_0_1.UpdateAsync())
.MustHaveHappened(1, Times.Exactly);
A.CallTo(() => migrator_1_2.UpdateAsync())
.MustHaveHappened(1, Times.Exactly);
}
private IMigration BuildMigration(int fromVersion, int toVersion)
{
var migration = A.Fake<IMigration>();

Loading…
Cancel
Save