Something went wrong. Try again.
A database migration tool for .NET
Something went wrong. Try again.
1.6 kB · 54 lines
C#
at develop
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455using System;using System.IO;using System.Linq;using Migrato.Core;using Xunit;
namespace Migrato.Tests;
public class MigrationLoaderTests : IDisposable{ private readonly string _tempDirectory = Directory.CreateTempSubdirectory("migrato-tests-").FullName;
[Fact] public void LoadFromDirectory_ReturnsMigrationsOrderedByVersion() { WriteFile("20260103000000_third.sql"); WriteFile("20260101000000_first.sql"); WriteFile("20260102000000_second.sql");
var migrations = MigrationLoader.LoadFromDirectory(_tempDirectory);
Assert.Equal( new[] { "first", "second", "third" }, migrations.Select(m => m.Name).ToArray()); }
[Fact] public void LoadFromDirectory_MissingDirectory_Throws() { var missingDirectory = Path.Combine(_tempDirectory, "does-not-exist");
Assert.Throws<DirectoryNotFoundException>(() => MigrationLoader.LoadFromDirectory(missingDirectory)); }
[Fact] public void LoadFromDirectory_DuplicateVersions_Throws() { WriteFile("20260101000000_first.sql"); WriteFile("20260101000000_also_first.sql");
Assert.Throws<MigrationFormatException>(() => MigrationLoader.LoadFromDirectory(_tempDirectory)); }
private void WriteFile(string fileName) { var path = Path.Combine(_tempDirectory, fileName); File.WriteAllText(path, "-- +migrato Up\nSELECT 1;\n-- +migrato Down\nSELECT 2;\n"); }
public void Dispose() { Directory.Delete(_tempDirectory, recursive: true); }}