private void AddAndApplyMigrationImpl( string targetProjectName, string contextName, string migrationName, string startupProjectName = null) { var targetProject = Path.Combine(_fixture.TestProjectRoot, targetProjectName, "project.json"); var startupProject = startupProjectName != null ? Path.Combine(_fixture.TestProjectRoot, startupProjectName, "project.json") : null; _output.WriteLine("Target dir = " + targetProject); var migrationDir = Path.Combine(Path.GetDirectoryName(targetProject), "Migrations"); var snapshotFile = contextName + "ModelSnapshot.cs"; if (Directory.Exists(migrationDir)) { Assert.False(Directory.EnumerateFiles(migrationDir, snapshotFile, SearchOption.AllDirectories).Any()); } AssertCommand.Pass(new AddMigration(targetProject, migrationName, _output, startupProject) .Execute("--context", contextName)); Assert.True(Directory.EnumerateFiles(migrationDir, snapshotFile, SearchOption.AllDirectories).Any()); AssertCommand.Pass(new DatabaseUpdate(targetProject, _output, startupProject) .Execute("--context", contextName)); AssertCommand.Pass(new ScriptMigration(targetProject, _output, startupProject) .Execute("--context", contextName, "--output", Path.Combine(Path.GetDirectoryName(targetProject), "obj/dotnet-ef/migrations-" + contextName + ".sql"))); }
public DotNetEfFixture() { foreach (var file in Directory.EnumerateFiles(TestProjectRoot, "project.json.ignore", SearchOption.AllDirectories)) { File.Move(file, Path.Combine(Path.GetDirectoryName(file), "project.json")); } Console.WriteLine("Restoring test projects...".Bold().Black()); AssertCommand.Pass(new DotnetRestore(TestProjectRoot, null).Execute()); Console.WriteLine("Restore done.".Bold().Black()); }
public void AddMigrationToDifferentFolder() { var project = Path.Combine(_fixture.TestProjectRoot, "PortableApp", "project.json"); Assert.False(Directory.Exists(Path.Combine(_fixture.TestProjectRoot, "SomeOtherDir"))); AssertCommand.Pass(new AddMigration(project, "OtherFolderMigration", _output) .Execute("--context", "TestContext", "--output-dir", "../SomeOtherDir")); Assert.True(Directory.Exists(Path.Combine(_fixture.TestProjectRoot, "SomeOtherDir"))); Assert.True(Directory.EnumerateFiles(Path.Combine(_fixture.TestProjectRoot, "SomeOtherDir"), "*.cs").Any()); }