public void GetMgUsedVariables_Throws_If_File_Does_Not_Exist() { FileManagerMock.FileExists("migrations/rollout/one.sql", false); var command = new GetMgUsedVariables(GetMockedDependencies()) { MigrationFile = "migrations/rollout/one.sql" }; Assert.Throws <Exception>(() => command.Invoke()?.OfType <string[]>()?.First()); }
public void GetMgUsedVariables_Returns_Correct_Variables() { FileManagerMock.FileExists("migrations/rollout/one.sql", true); FileManagerMock.ReadAllText("migrations/rollout/one.sql", "SELECT ${{VAR_ME}} FROM ${{VAR_YOU}}"); var command = new GetMgUsedVariables(GetMockedDependencies()) { MigrationFile = "migrations/rollout/one.sql" }; var result = command.Invoke()?.OfType <string[]>()?.First(); Assert.Equal(new[] { "VAR_ME", "VAR_YOU" }, result); }
public void GetMgUsedVariables_Returns_Empty_When_No_Variables_Is_Used() { FileManagerMock.FileExists("migrations/rollout/one.sql", true); FileManagerMock.ReadAllText("migrations/rollout/one.sql", "SELECT ME FROM YOU"); var command = new GetMgUsedVariables(GetMockedDependencies()) { MigrationFile = "migrations/rollout/one.sql" }; var result = command.Invoke()?.OfType <string[]>()?.First(); Assert.Empty(result); }
public void NewMgSeeder_Creates_Seeds_Directory_If_Not_Exists() { var seedPath = Path.Join("migrations", "seeders"); ConfigManagerMock.SeedersDirectory(seedPath); FileManagerMock.DirectoryExists(seedPath, false); FileManagerMock.CreateDirectory(seedPath); FileManagerMock.GetFilePrefix("test_prefix"); FileManagerMock.GetFormattedName("file_name"); FileManagerMock.FileExists("migrations/seeders/test_prefix_file_name.sql", false); FileManagerMock.CreateFile("migrations/seeders/test_prefix_file_name.sql"); var command = new NewMgSeeder(GetMockedDependencies()) { Name = "This is my migration" }; var result = command.Invoke()?.OfType <string>().First(); Assert.NotNull(result); Assert.Contains(seedPath, result); FileManagerMock.VerifyCreateDirectory(seedPath, Times.Once()); FileManagerMock.VerifyCreateFile("migrations/seeders/test_prefix_file_name.sql", Times.Once()); }