diff --git a/tests/ModuleTests/Git/AddRegistrationTests.cs b/tests/ModuleTests/Git/AddRegistrationTests.cs index ced609b..bdecf43 100644 --- a/tests/ModuleTests/Git/AddRegistrationTests.cs +++ b/tests/ModuleTests/Git/AddRegistrationTests.cs @@ -23,49 +23,60 @@ public class AddRegistrationTests public Task BasicRepoRegistration((int testId, string path) testData) { Settings.UseFileName($"{nameof(BasicRepoRegistration)}_{testData.testId}"); - var gitManager = GitManager.InternalFreshInstance(nameof(BasicRepoRegistration)); - var repoRegistration = gitManager.RegisterRepo("Test:/some/test/repo", testData.path); - var sb = new StringBuilder(); - sb.AppendLine($"Attempted to register: {testData.path}") - .AppendLine($"Registration result: {repoRegistration}"); + try + { + var repoRegistration = gitManager.RegisterRepo("Test:/some/test/repo", testData.path); + var sb = new StringBuilder(); + sb.AppendLine($"Attempted to register: {testData.path}") + .AppendLine($"Registration result: {repoRegistration}"); - gitManager.DeleteDatabase(); - - return Verify(sb, Settings); + return Verify(sb, Settings); + } + finally + { + gitManager.DeleteDatabase(); + } } [Fact] public void RepoRegistrationWithEmptyName() { Settings.UseFileName(nameof(RepoRegistrationWithEmptyName)); - var gitManager = GitManager.InternalFreshInstance(nameof(RepoRegistrationWithEmptyName)); var testRepoAbsolutePath = "Test:/some/test/repo"; - var emptyName = gitManager.RegisterRepo(testRepoAbsolutePath, ""); + try + { + var emptyName = gitManager.RegisterRepo(testRepoAbsolutePath, ""); - gitManager.DeleteDatabase(); - - Assert.Equal("repo", emptyName); + Assert.Equal("repo", emptyName); + } + finally + { + gitManager.DeleteDatabase(); + } } [Fact] public void RepoRegistrationWithNullName() { Settings.UseFileName(nameof(RepoRegistrationWithNullName)); - var gitManager = GitManager.InternalFreshInstance(nameof(RepoRegistrationWithNullName)); var testRepoAbsolutePath = "Test:/some/test/repo"; + try + { + // Name is technically not-nullable, but string is a reference type so null can be passed in so we should test + // it regardless + var nullName = gitManager.RegisterRepo(testRepoAbsolutePath, null!); - // Name is technically not-nullable, but string is a reference type so null can be passed in so we should test - // it regardless - var nullName = gitManager.RegisterRepo(testRepoAbsolutePath, null!); - - gitManager.DeleteDatabase(); - - Assert.Equal("repo", nullName); + Assert.Equal("repo", nullName); + } + finally + { + gitManager.DeleteDatabase(); + } } [Fact] @@ -75,55 +86,67 @@ public class AddRegistrationTests var gitManager = GitManager.InternalFreshInstance(nameof(RepoRegistrationWithWhitespaceName)); var testRepoAbsolutePath = "Test:/some/test/repo"; + try + { + var whitespaceName = gitManager.RegisterRepo(testRepoAbsolutePath, " "); - var whitespaceName = gitManager.RegisterRepo(testRepoAbsolutePath, " "); - - gitManager.DeleteDatabase(); - - Assert.Equal("repo", whitespaceName); + Assert.Equal("repo", whitespaceName); + } + finally + { + gitManager.DeleteDatabase(); + } } [Fact] public void DuplicateRepoRegistrationShouldFail() { Settings.UseFileName(nameof(RepoRegistrationWithWhitespaceName)); - var gitManager = GitManager.InternalFreshInstance(nameof(RepoRegistrationWithWhitespaceName)); var testRepoAbsolutePath = "Test:/some/test/repo"; string[] paths = ["test", "nested", "path"]; var names = (NormalSeparator: string.Join(Path.DirectorySeparatorChar, paths), AltSeparator: string.Join(Path.AltDirectorySeparatorChar, paths)); - var firstRegistration = gitManager.RegisterRepo(testRepoAbsolutePath, names.NormalSeparator); - // TODO: make nested registrations fail in both directions and test - var secondRegistration = gitManager.RegisterRepo(testRepoAbsolutePath, Path.Combine(paths[..1])); + try + { + var firstRegistration = gitManager.RegisterRepo(testRepoAbsolutePath, names.NormalSeparator); + // TODO: make nested registrations fail in both directions and test + var secondRegistration = gitManager.RegisterRepo(testRepoAbsolutePath, Path.Combine(paths[..1])); - Assert.Equal(Path.Combine(paths), firstRegistration); - Assert.Equal(Path.Combine(paths[..1]), secondRegistration); + Assert.Equal(Path.Combine(paths), firstRegistration); + Assert.Equal(Path.Combine(paths[..1]), secondRegistration); - Assert.Throws(() => gitManager.RegisterRepo(testRepoAbsolutePath, Path.Combine(paths[..1]))); - - gitManager.DeleteDatabase(); + Assert.Throws(() => gitManager.RegisterRepo(testRepoAbsolutePath, Path.Combine(paths[..1]))); + } + finally + { + gitManager.DeleteDatabase(); + } } [Fact] public void DuplicateRepoRegistrationDifferentSlashShouldNotFail() { Settings.UseFileName(nameof(RepoRegistrationWithWhitespaceName)); - var gitManager = GitManager.InternalFreshInstance(nameof(RepoRegistrationWithWhitespaceName)); var testRepoAbsolutePath = "Test:/some/test/repo"; string[] paths = ["test", "nested", "path"]; var names = (NormalSeparator: string.Join(Path.DirectorySeparatorChar, paths), AltSeparator: string.Join(Path.AltDirectorySeparatorChar, paths)); - var firstRegistration = gitManager.RegisterRepo(testRepoAbsolutePath, names.NormalSeparator); - // TODO: make nested registrations fail in both directions and test - var secondRegistration = gitManager.RegisterRepo(testRepoAbsolutePath, Path.Combine(paths[..1])); - var differentPathSeparatorRegistration = gitManager.RegisterRepo(testRepoAbsolutePath, names.AltSeparator); + try + { + var firstRegistration = gitManager.RegisterRepo(testRepoAbsolutePath, names.NormalSeparator); + // TODO: make nested registrations fail in both directions and test + var secondRegistration = gitManager.RegisterRepo(testRepoAbsolutePath, Path.Combine(paths[..1])); + var differentPathSeparatorRegistration = gitManager.RegisterRepo(testRepoAbsolutePath, names.AltSeparator); - gitManager.DeleteDatabase(); - - Assert.Equal(Path.Combine(paths), firstRegistration); - Assert.Equal(Path.Combine(paths[..1]), secondRegistration); - Assert.Equal(names.AltSeparator, differentPathSeparatorRegistration); + Assert.Equal(Path.Combine(paths), firstRegistration); + Assert.Equal(Path.Combine(paths[..1]), secondRegistration); + Assert.Equal(names.AltSeparator, differentPathSeparatorRegistration); + } + finally + { + gitManager.DeleteDatabase(); + } } } \ No newline at end of file