From 14a72683d8eb6b96cd4bc42ef7ca0528e7e3e265 Mon Sep 17 00:00:00 2001 From: Coen van den Munckhof Date: Mon, 14 Aug 2023 19:37:25 +0200 Subject: [PATCH] Cleanup --- .../Configuration/DocsModuleSettingsTests.cs | 23 ++++++------- .../DocsRepositoryActionsTests.cs | 28 +++++++++------- ...leSettingsTests.VerifyChanges.verified.txt | 0 ...oryActionsTests.VerifyChanges.verified.txt | 1 + ...oryActionsTests.VerifyChanges.verified.txt | 0 ...entationGeneration_AppSettings.verified.md | 0 ....AppSettingsJsonFileGeneration.verified.md | 0 ...ppSettingsTests.VerifyChanges.verified.txt | 0 .../DocsAppSettingsTests.cs | 33 ++++--------------- .../TestFramework/MockFileSystemFactory.cs | 24 ++++++++++++++ .../TestFramework/NuDoc/ClassWriter.cs | 10 ++---- 11 files changed, 62 insertions(+), 57 deletions(-) rename tests/RepoM.Plugin.Misc.Tests/Configuration/{ => VerifiedDocs}/DocsModuleSettingsTests.VerifyChanges.verified.txt (100%) create mode 100644 tests/RepoM.Plugin.Misc.Tests/Configuration/VerifiedDocs/DocsRepositoryActionsTests.VerifyChanges.verified.txt rename tests/RepoM.Plugin.Misc.Tests/Configuration/{ => VerifiedDocs1}/DocsRepositoryActionsTests.VerifyChanges.verified.txt (100%) rename tests/RepoM.Plugin.Misc.Tests/{Configuration => DefaultAppSettingsTests}/DocsAppSettingsTests.AppSettingsDocumentationGeneration_AppSettings.verified.md (100%) rename tests/RepoM.Plugin.Misc.Tests/{Configuration => DefaultAppSettingsTests}/DocsAppSettingsTests.AppSettingsJsonFileGeneration.verified.md (100%) rename tests/RepoM.Plugin.Misc.Tests/{Configuration => DefaultAppSettingsTests}/DocsAppSettingsTests.VerifyChanges.verified.txt (100%) rename tests/RepoM.Plugin.Misc.Tests/{Configuration => DefaultAppSettingsTests}/DocsAppSettingsTests.cs (74%) create mode 100644 tests/RepoM.Plugin.Misc.Tests/TestFramework/MockFileSystemFactory.cs diff --git a/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsModuleSettingsTests.cs b/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsModuleSettingsTests.cs index bbeba59a..e4e8ca4b 100644 --- a/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsModuleSettingsTests.cs +++ b/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsModuleSettingsTests.cs @@ -11,6 +11,7 @@ namespace RepoM.Plugin.Misc.Tests.Configuration; using NuDoq; using RepoM.Api.Plugins; using RepoM.Core.Plugin; +using RepoM.Plugin.Misc.Tests.TestFramework; using RepoM.Plugin.Misc.Tests.TestFramework.NuDoc; using VerifyTests; using VerifyXunit; @@ -19,13 +20,17 @@ namespace RepoM.Plugin.Misc.Tests.Configuration; [UsesVerify] public class DocsModuleSettingsTests { - private FileBasedPackageConfiguration _fileBasedPackageConfiguration; + private const string VERIFY_DIRECTORY = "VerifiedDocs"; + private readonly VerifySettings _verifySettings = new(); + private readonly FileBasedPackageConfiguration _fileBasedPackageConfiguration; private readonly MockFileSystem _fileSystem; public DocsModuleSettingsTests() { _fileSystem = MockFileSystemFactory.CreateDefaultFileSystem(); _fileBasedPackageConfiguration = new FileBasedPackageConfiguration(MockFileSystemFactory.CreateDefaultAppDataProvider(), _fileSystem, NullLogger.Instance, "dummy"); + + _verifySettings.UseDirectory(VERIFY_DIRECTORY); } public static IEnumerable PackagesTestData => PluginStore.Packages.Select(package => new object[] { package, }).ToArray(); @@ -44,8 +49,7 @@ public async Task VerifyChanges() } // assert - var settings = new VerifySettings(); - await Verifier.Verify(results, settings); + await Verifier.Verify(results, _verifySettings); } [Theory] @@ -59,14 +63,11 @@ public async Task DocsModuleSettings(IPackage package) (object? config, string? persistedConfig) = await PersistDefaultConfigAsync(package); // assert - var settings = new VerifySettings(); - // settings.AutoVerify(); - settings.UseDirectory("VerifiedDocs"); - settings.UseTextForParameters(package.GetType().Name); + _verifySettings.UseTextForParameters(package.GetType().Name); if (config == null && persistedConfig == null) { - settings.AppendContentAsFile(CreateConfigWithoutSnippetDocumentationMarkdown(), "md", "desc"); - await Verifier.Verify($"No config in {packageName}", settings: settings); + _verifySettings.AppendContentAsFile(CreateConfigWithoutSnippetDocumentationMarkdown(), "md", "desc"); + await Verifier.Verify($"No config in {packageName}", settings: _verifySettings); } else { @@ -111,10 +112,10 @@ public async Task DocsModuleSettings(IPackage package) configWithSnippetDocumentationMarkdown += Environment.NewLine + sb; } - settings.AppendContentAsFile(configWithSnippetDocumentationMarkdown, "md", "desc"); + _verifySettings.AppendContentAsFile(configWithSnippetDocumentationMarkdown, "md", "desc"); #if DEBUG - await Verifier.Verify(persistedConfig, settings: settings, extension: "json"); + await Verifier.Verify(persistedConfig, settings: _verifySettings, extension: "json"); #else Assert.True(true); // this test should only be run in Debug mode. #endif diff --git a/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsRepositoryActionsTests.cs b/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsRepositoryActionsTests.cs index f0b1453c..b594e61b 100644 --- a/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsRepositoryActionsTests.cs +++ b/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsRepositoryActionsTests.cs @@ -17,6 +17,14 @@ namespace RepoM.Plugin.Misc.Tests.Configuration; [UsesVerify] public class DocsRepositoryActionsTests { + private const string VERIFY_DIRECTORY = "VerifiedDocs1"; + private readonly VerifySettings _verifySettings = new(); + + public DocsRepositoryActionsTests() + { + _verifySettings.UseDirectory(VERIFY_DIRECTORY); + } + public static IEnumerable AssemblyTestData => PluginStore.Assemblies.Select(assembly => new object[] { assembly, }).ToArray(); public static IEnumerable RepositoryActionsTestData @@ -71,17 +79,13 @@ public async Task VerifyChanges() } // assert - var settings = new VerifySettings(); - await Verifier.Verify(results, settings); + await Verifier.Verify(results, _verifySettings); } [Fact] public async Task RepositoryActionBaseDocumentationGeneration() { - var settings = new VerifySettings(); - // settings.AutoVerify(); - settings.UseDirectory("VerifiedDocs1"); - settings.UseTextForParameters(nameof(RepositoryAction)); + _verifySettings.UseTextForParameters(nameof(RepositoryAction)); #if DEBUG var options = new NuDoq.ReaderOptions @@ -109,7 +113,7 @@ public async Task RepositoryActionBaseDocumentationGeneration() } #if DEBUG - await Verifier.Verify(sb.ToString(), settings: settings, extension: "md"); + await Verifier.Verify(sb.ToString(), settings: _verifySettings, extension: "md"); #else await Task.Yield(); Assert.True(true); // this test should only be run in Debug mode. @@ -120,10 +124,7 @@ public async Task RepositoryActionBaseDocumentationGeneration() [MemberData(nameof(RepositoryActionsTestData))] public async Task DocsRepositoryActionsSettings(RepositoryTestData repositoryActionTestData) { - var settings = new VerifySettings(); - // settings.AutoVerify(); - settings.UseDirectory("VerifiedDocs1"); - settings.UseTextForParameters(repositoryActionTestData.Type.Name); + _verifySettings.UseTextForParameters(repositoryActionTestData.Type.Name); var builtinClassNames = new Dictionary { @@ -166,7 +167,7 @@ public async Task DocsRepositoryActionsSettings(RepositoryTestData repositoryAct } #if DEBUG - await Verifier.Verify(sb.ToString(), settings: settings, extension: "md"); + await Verifier.Verify(sb.ToString(), settings: _verifySettings, extension: "md"); #else await Task.Yield(); Assert.True(true); // this test should only be run in Debug mode. @@ -174,6 +175,9 @@ public async Task DocsRepositoryActionsSettings(RepositoryTestData repositoryAct } } +/// +/// Helper class used for naming arguments in xunits test name generation. +/// public class RepositoryTestData { public RepositoryTestData(Assembly assembly, Type type) diff --git a/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsModuleSettingsTests.VerifyChanges.verified.txt b/tests/RepoM.Plugin.Misc.Tests/Configuration/VerifiedDocs/DocsModuleSettingsTests.VerifyChanges.verified.txt similarity index 100% rename from tests/RepoM.Plugin.Misc.Tests/Configuration/DocsModuleSettingsTests.VerifyChanges.verified.txt rename to tests/RepoM.Plugin.Misc.Tests/Configuration/VerifiedDocs/DocsModuleSettingsTests.VerifyChanges.verified.txt diff --git a/tests/RepoM.Plugin.Misc.Tests/Configuration/VerifiedDocs/DocsRepositoryActionsTests.VerifyChanges.verified.txt b/tests/RepoM.Plugin.Misc.Tests/Configuration/VerifiedDocs/DocsRepositoryActionsTests.VerifyChanges.verified.txt new file mode 100644 index 00000000..5f282702 --- /dev/null +++ b/tests/RepoM.Plugin.Misc.Tests/Configuration/VerifiedDocs/DocsRepositoryActionsTests.VerifyChanges.verified.txt @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsRepositoryActionsTests.VerifyChanges.verified.txt b/tests/RepoM.Plugin.Misc.Tests/Configuration/VerifiedDocs1/DocsRepositoryActionsTests.VerifyChanges.verified.txt similarity index 100% rename from tests/RepoM.Plugin.Misc.Tests/Configuration/DocsRepositoryActionsTests.VerifyChanges.verified.txt rename to tests/RepoM.Plugin.Misc.Tests/Configuration/VerifiedDocs1/DocsRepositoryActionsTests.VerifyChanges.verified.txt diff --git a/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsAppSettingsTests.AppSettingsDocumentationGeneration_AppSettings.verified.md b/tests/RepoM.Plugin.Misc.Tests/DefaultAppSettingsTests/DocsAppSettingsTests.AppSettingsDocumentationGeneration_AppSettings.verified.md similarity index 100% rename from tests/RepoM.Plugin.Misc.Tests/Configuration/DocsAppSettingsTests.AppSettingsDocumentationGeneration_AppSettings.verified.md rename to tests/RepoM.Plugin.Misc.Tests/DefaultAppSettingsTests/DocsAppSettingsTests.AppSettingsDocumentationGeneration_AppSettings.verified.md diff --git a/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsAppSettingsTests.AppSettingsJsonFileGeneration.verified.md b/tests/RepoM.Plugin.Misc.Tests/DefaultAppSettingsTests/DocsAppSettingsTests.AppSettingsJsonFileGeneration.verified.md similarity index 100% rename from tests/RepoM.Plugin.Misc.Tests/Configuration/DocsAppSettingsTests.AppSettingsJsonFileGeneration.verified.md rename to tests/RepoM.Plugin.Misc.Tests/DefaultAppSettingsTests/DocsAppSettingsTests.AppSettingsJsonFileGeneration.verified.md diff --git a/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsAppSettingsTests.VerifyChanges.verified.txt b/tests/RepoM.Plugin.Misc.Tests/DefaultAppSettingsTests/DocsAppSettingsTests.VerifyChanges.verified.txt similarity index 100% rename from tests/RepoM.Plugin.Misc.Tests/Configuration/DocsAppSettingsTests.VerifyChanges.verified.txt rename to tests/RepoM.Plugin.Misc.Tests/DefaultAppSettingsTests/DocsAppSettingsTests.VerifyChanges.verified.txt diff --git a/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsAppSettingsTests.cs b/tests/RepoM.Plugin.Misc.Tests/DefaultAppSettingsTests/DocsAppSettingsTests.cs similarity index 74% rename from tests/RepoM.Plugin.Misc.Tests/Configuration/DocsAppSettingsTests.cs rename to tests/RepoM.Plugin.Misc.Tests/DefaultAppSettingsTests/DocsAppSettingsTests.cs index b71540b2..160d2298 100644 --- a/tests/RepoM.Plugin.Misc.Tests/Configuration/DocsAppSettingsTests.cs +++ b/tests/RepoM.Plugin.Misc.Tests/DefaultAppSettingsTests/DocsAppSettingsTests.cs @@ -1,41 +1,22 @@ -namespace RepoM.Plugin.Misc.Tests.Configuration; +namespace RepoM.Plugin.Misc.Tests.DefaultAppSettingsTests; -using System.Collections.Generic; using System.IO.Abstractions.TestingHelpers; using System.Text; using System.Threading.Tasks; -using FakeItEasy; using Microsoft.Extensions.Logging.Abstractions; using NuDoq; using RepoM.Api.Common; -using RepoM.Core.Plugin.Common; +using RepoM.Plugin.Misc.Tests.TestFramework; using RepoM.Plugin.Misc.Tests.TestFramework.NuDoc; using VerifyTests; using VerifyXunit; using Xunit; -internal static class MockFileSystemFactory -{ - public static MockFileSystem CreateDefaultFileSystem() - { - return new MockFileSystem(new Dictionary() - { - { "C:\\tmp\\x.tmp", new MockFileData("x") }, // make sure path exists. - }); - } - - public static IAppDataPathProvider CreateDefaultAppDataProvider() - { - IAppDataPathProvider appDataPathProvider = A.Fake(); - A.CallTo(() => appDataPathProvider.AppDataPath).Returns("C:\\tmp\\"); - return appDataPathProvider; - } -} - [UsesVerify] public class DocsAppSettingsTests { - private FileAppSettingsService _fileBasedPackageConfiguration; + private readonly VerifySettings _verifySettings = new(); + private readonly FileAppSettingsService _fileBasedPackageConfiguration; private readonly MockFileSystem _fileSystem; public DocsAppSettingsTests() @@ -65,10 +46,10 @@ public async Task AppSettingsJsonFileGeneration() [Fact] public async Task AppSettingsDocumentationGeneration() { - var settings = new VerifySettings(); - settings.UseTextForParameters(nameof(AppSettings)); + _verifySettings.UseTextForParameters(nameof(AppSettings)); #if DEBUG + // ReSharper disable once RedundantNameQualifier var options = new NuDoq.ReaderOptions { KeepNewLinesInText = true, @@ -94,7 +75,7 @@ public async Task AppSettingsDocumentationGeneration() } #if DEBUG - await Verifier.Verify(sb.ToString(), settings: settings, extension: "md"); + await Verifier.Verify(sb.ToString(), settings: _verifySettings, extension: "md"); #else await Task.Yield(); Assert.True(true); // this test should only be run in Debug mode. diff --git a/tests/RepoM.Plugin.Misc.Tests/TestFramework/MockFileSystemFactory.cs b/tests/RepoM.Plugin.Misc.Tests/TestFramework/MockFileSystemFactory.cs new file mode 100644 index 00000000..9e6329e4 --- /dev/null +++ b/tests/RepoM.Plugin.Misc.Tests/TestFramework/MockFileSystemFactory.cs @@ -0,0 +1,24 @@ +namespace RepoM.Plugin.Misc.Tests.TestFramework; + +using System.Collections.Generic; +using System.IO.Abstractions.TestingHelpers; +using FakeItEasy; +using RepoM.Core.Plugin.Common; + +internal static class MockFileSystemFactory +{ + public static MockFileSystem CreateDefaultFileSystem() + { + return new MockFileSystem(new Dictionary() + { + { "C:\\tmp\\x.tmp", new MockFileData("x") }, // make sure path exists. + }); + } + + public static IAppDataPathProvider CreateDefaultAppDataProvider() + { + IAppDataPathProvider appDataPathProvider = A.Fake(); + A.CallTo(() => appDataPathProvider.AppDataPath).Returns("C:\\tmp\\"); + return appDataPathProvider; + } +} \ No newline at end of file diff --git a/tests/RepoM.Plugin.Misc.Tests/TestFramework/NuDoc/ClassWriter.cs b/tests/RepoM.Plugin.Misc.Tests/TestFramework/NuDoc/ClassWriter.cs index cadf6384..4d1a9aca 100644 --- a/tests/RepoM.Plugin.Misc.Tests/TestFramework/NuDoc/ClassWriter.cs +++ b/tests/RepoM.Plugin.Misc.Tests/TestFramework/NuDoc/ClassWriter.cs @@ -4,13 +4,7 @@ namespace RepoM.Plugin.Misc.Tests.TestFramework.NuDoc; internal class ClassWriter { - public ClassWriter() - { - Head = new StringWriter(); - Properties = new StringWriter(); - } + public readonly StringWriter Head = new(); - public readonly StringWriter Head; - - public readonly StringWriter Properties; + public readonly StringWriter Properties = new(); } \ No newline at end of file