diff --git a/CHANGELOG.md b/CHANGELOG.md index 64f8ade8..479b70d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,13 @@ ## Improvements: -* Find Unused Step Definitions Command: Improved handling of Step Definitions decorated with the 'StepDefinition' attribute. If a Step Definition is used in any Given/Then/When step in a Feature file, the step will no longer show in the 'Find Unused Step Definitions' context menu. +* Find Unused Step Definitions Command: Improved handling of Step Definitions decorated with the 'StepDefinition' attribute. If a Step Definition is used in any Given/Then/When step in a Feature file, the step will no longer show in the 'Find Unused Step Definitions' context menu. (#24) -*Contributors of this release (in alphabetical order):* @UL-ChrisGlew +## Bug fixes: + +* Fix: Using the extension side-by-side with the SpecFlow for Visual Studio extension causes CompositionFailedException (#25) + +*Contributors of this release (in alphabetical order):* @gasparnagy, @UL-ChrisGlew # v2024.2.93 - 2024-06-05 diff --git a/Reqnroll.VisualStudio.Package/ProjectSystem/NullVsIdeScope.cs b/Reqnroll.VisualStudio.Package/ProjectSystem/NullVsIdeScope.cs index 57507861..0de2f9d3 100644 --- a/Reqnroll.VisualStudio.Package/ProjectSystem/NullVsIdeScope.cs +++ b/Reqnroll.VisualStudio.Package/ProjectSystem/NullVsIdeScope.cs @@ -13,7 +13,7 @@ public NullVsIdeScope(IDeveroomLogger logger, IServiceProvider serviceProvider, MonitoringService = monitoringService; ServiceProvider = serviceProvider; WindowManager = new DeveroomWindowManager(serviceProvider, monitoringService); - FileSystem = new FileSystem(); + FileSystem = new FileSystemForVs(); Actions = new NullIdeActions(this); Dte = null; DeveroomOutputPaneServices = null; @@ -26,7 +26,7 @@ public NullVsIdeScope(IDeveroomLogger logger, IServiceProvider serviceProvider, public IMonitoringService MonitoringService { get; } public IIdeActions Actions { get; } public IDeveroomWindowManager WindowManager { get; } - public IFileSystem FileSystem { get; } + public IFileSystemForVs FileSystem { get; } public event EventHandler WeakProjectsBuilt { diff --git a/Reqnroll.VisualStudio.Package/ProjectSystem/VsIdeScope.cs b/Reqnroll.VisualStudio.Package/ProjectSystem/VsIdeScope.cs index 5f9da68f..8c1f298d 100644 --- a/Reqnroll.VisualStudio.Package/ProjectSystem/VsIdeScope.cs +++ b/Reqnroll.VisualStudio.Package/ProjectSystem/VsIdeScope.cs @@ -24,7 +24,7 @@ private readonly ConcurrentDictionary [ImportingConstructor] public VsIdeScope([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider, IVsSolutionEventListener solutionEventListener, IMonitoringService monitoringService, - IDeveroomWindowManager windowManager, IFileSystem fileSystem, DeveroomCompositeLogger compositeLogger) + IDeveroomWindowManager windowManager, IFileSystemForVs fileSystem, DeveroomCompositeLogger compositeLogger) { Logger = compositeLogger; ServiceProvider = serviceProvider; @@ -65,7 +65,7 @@ public VsIdeScope([Import(typeof(SVsServiceProvider))] IServiceProvider serviceP public IMonitoringService MonitoringService { get; } public IIdeActions Actions { get; } public IDeveroomWindowManager WindowManager { get; } - public IFileSystem FileSystem { get; } + public IFileSystemForVs FileSystem { get; } public IDeveroomOutputPaneServices DeveroomOutputPaneServices { get; } public IDeveroomErrorListServices DeveroomErrorListServices { get; } diff --git a/Reqnroll.VisualStudio.Package/ProjectSystem/VsIdeScopeLoader.cs b/Reqnroll.VisualStudio.Package/ProjectSystem/VsIdeScopeLoader.cs index 22525b21..34c70f5e 100644 --- a/Reqnroll.VisualStudio.Package/ProjectSystem/VsIdeScopeLoader.cs +++ b/Reqnroll.VisualStudio.Package/ProjectSystem/VsIdeScopeLoader.cs @@ -44,7 +44,7 @@ private static IDeveroomLogger GetSafeLogger(IServiceProvider serviceProvider) { try { - var fileSystem = VsUtils.ResolveMefDependency(serviceProvider); + var fileSystem = VsUtils.ResolveMefDependency(serviceProvider); var asyncLogger = AsynchronousFileLogger.CreateInstance(fileSystem); var compositeLogger = VsUtils.ResolveMefDependency(serviceProvider); compositeLogger.Add(asyncLogger); @@ -114,7 +114,7 @@ private void MonitorLoadProjectSystem() public IDeveroomWindowManager WindowManager => VsIdeScope.WindowManager; - public IFileSystem FileSystem => VsIdeScope.FileSystem; + public IFileSystemForVs FileSystem => VsIdeScope.FileSystem; public event EventHandler WeakProjectsBuilt { diff --git a/Reqnroll.VisualStudio/Analytics/ApplicationInsightsConfigurationHolder.cs b/Reqnroll.VisualStudio/Analytics/ApplicationInsightsConfigurationHolder.cs index ae6f441c..f4306a12 100644 --- a/Reqnroll.VisualStudio/Analytics/ApplicationInsightsConfigurationHolder.cs +++ b/Reqnroll.VisualStudio/Analytics/ApplicationInsightsConfigurationHolder.cs @@ -3,10 +3,10 @@ namespace Reqnroll.VisualStudio.Analytics; [Export(typeof(ITelemetryConfigurationHolder))] public class ApplicationInsightsConfigurationHolder : ITelemetryConfigurationHolder { - private readonly IContextInitializer _contextInitializer; + private readonly IReqnrollContextInitializer _contextInitializer; [ImportingConstructor] - public ApplicationInsightsConfigurationHolder(IContextInitializer contextInitializer) + public ApplicationInsightsConfigurationHolder(IReqnrollContextInitializer contextInitializer) { _contextInitializer = contextInitializer; } diff --git a/Reqnroll.VisualStudio/Analytics/IUserUniqueIdStore.cs b/Reqnroll.VisualStudio/Analytics/IUserUniqueIdStore.cs index 49db17b4..2572fed4 100644 --- a/Reqnroll.VisualStudio/Analytics/IUserUniqueIdStore.cs +++ b/Reqnroll.VisualStudio/Analytics/IUserUniqueIdStore.cs @@ -11,12 +11,12 @@ public interface IUserUniqueIdStore public class FileUserIdStore : IUserUniqueIdStore { public static readonly string UserIdFilePath = Environment.ExpandEnvironmentVariables(@"%APPDATA%\Reqnroll\userid"); - private readonly IFileSystem _fileSystem; + private readonly IFileSystemForVs _fileSystem; private readonly Lazy _lazyUniqueUserId; [ImportingConstructor] - public FileUserIdStore(IFileSystem fileSystem) + public FileUserIdStore(IFileSystemForVs fileSystem) { _fileSystem = fileSystem; _lazyUniqueUserId = new Lazy(FetchAndPersistUserId); diff --git a/Reqnroll.VisualStudio/Analytics/ReqnrollTelemetryContextInitializer.cs b/Reqnroll.VisualStudio/Analytics/ReqnrollTelemetryContextInitializer.cs index b2b39ea1..2078b726 100644 --- a/Reqnroll.VisualStudio/Analytics/ReqnrollTelemetryContextInitializer.cs +++ b/Reqnroll.VisualStudio/Analytics/ReqnrollTelemetryContextInitializer.cs @@ -1,7 +1,13 @@ namespace Reqnroll.VisualStudio.Analytics; -[System.Composition.Export(typeof(IContextInitializer))] -public class ReqnrollTelemetryContextInitializer : IContextInitializer +// We cannot directly use IContextInitializer as dependency (with MEF), because there might be other extensions (e.g. SpecFlow) +// that also export an implementation of IContextInitializer. We need to have a separate contract for "our" context initializer. +public interface IReqnrollContextInitializer : IContextInitializer +{ +} + +[System.Composition.Export(typeof(IReqnrollContextInitializer))] +public class ReqnrollTelemetryContextInitializer : IReqnrollContextInitializer { private readonly IUserUniqueIdStore _userUniqueIdStore; private readonly IVersionProvider _versionProvider; diff --git a/Reqnroll.VisualStudio/Configuration/DeveroomConfigurationLoader.cs b/Reqnroll.VisualStudio/Configuration/DeveroomConfigurationLoader.cs index 16b0a2a5..7cd61abd 100644 --- a/Reqnroll.VisualStudio/Configuration/DeveroomConfigurationLoader.cs +++ b/Reqnroll.VisualStudio/Configuration/DeveroomConfigurationLoader.cs @@ -6,20 +6,20 @@ namespace Reqnroll.VisualStudio.Configuration; public class DeveroomConfigurationLoader { private readonly IConfigDeserializer _configDeserializer; - private readonly IFileSystem _fileSystem; + private readonly IFileSystemForVs _fileSystem; private DeveroomConfigurationLoader( IConfigDeserializer configDeserializer, - IFileSystem fileSystem) + IFileSystemForVs fileSystem) { _configDeserializer = configDeserializer; _fileSystem = fileSystem; } - public static DeveroomConfigurationLoader CreateReqnrollJsonConfigurationLoader(IFileSystem fileSystem) => + public static DeveroomConfigurationLoader CreateReqnrollJsonConfigurationLoader(IFileSystemForVs fileSystem) => new(new ReqnrollConfigDeserializer(), fileSystem); - public static DeveroomConfigurationLoader CreateDeveroomJsonConfigurationLoader(IFileSystem fileSystem) => + public static DeveroomConfigurationLoader CreateDeveroomJsonConfigurationLoader(IFileSystemForVs fileSystem) => new(new JsonNetConfigDeserializer(), fileSystem); public DeveroomConfiguration Load(string configFilePath) diff --git a/Reqnroll.VisualStudio/Diagnostics/AsynchronousFileLogger.cs b/Reqnroll.VisualStudio/Diagnostics/AsynchronousFileLogger.cs index ef518f42..2d2cc41f 100644 --- a/Reqnroll.VisualStudio/Diagnostics/AsynchronousFileLogger.cs +++ b/Reqnroll.VisualStudio/Diagnostics/AsynchronousFileLogger.cs @@ -3,10 +3,10 @@ namespace Reqnroll.VisualStudio.Diagnostics; public class AsynchronousFileLogger : IDeveroomLogger, IDisposable { private readonly Channel _channel; - private readonly IFileSystem _fileSystem; + private readonly IFileSystemForVs _fileSystem; private readonly CancellationTokenSource _stopTokenSource; - protected AsynchronousFileLogger(IFileSystem fileSystem, TraceLevel level) + protected AsynchronousFileLogger(IFileSystemForVs fileSystem, TraceLevel level) { _fileSystem = fileSystem; Level = level; @@ -41,7 +41,7 @@ internal static string GetLogFile() #endif } - public static AsynchronousFileLogger CreateInstance(IFileSystem fileSystem) + public static AsynchronousFileLogger CreateInstance(IFileSystemForVs fileSystem) { var fileLogger = new AsynchronousFileLogger(fileSystem, TraceLevel.Verbose); Task.Factory.StartNew( diff --git a/Reqnroll.VisualStudio/Diagnostics/SynchronousFileLogger.cs b/Reqnroll.VisualStudio/Diagnostics/SynchronousFileLogger.cs index ceefa3a4..800a16d5 100644 --- a/Reqnroll.VisualStudio/Diagnostics/SynchronousFileLogger.cs +++ b/Reqnroll.VisualStudio/Diagnostics/SynchronousFileLogger.cs @@ -3,7 +3,7 @@ namespace Reqnroll.VisualStudio.Diagnostics; public class SynchronousFileLogger : AsynchronousFileLogger { public SynchronousFileLogger() - : base(new FileSystem(), TraceLevel.Verbose) + : base(new FileSystemForVs(), TraceLevel.Verbose) { EnsureLogFolder(); } diff --git a/Reqnroll.VisualStudio/Discovery/DiscoveryInvoker.cs b/Reqnroll.VisualStudio/Discovery/DiscoveryInvoker.cs index ff74d45c..4e443fd1 100644 --- a/Reqnroll.VisualStudio/Discovery/DiscoveryInvoker.cs +++ b/Reqnroll.VisualStudio/Discovery/DiscoveryInvoker.cs @@ -4,7 +4,7 @@ internal class DiscoveryInvoker { private readonly IDiscoveryResultProvider _discoveryResultProvider; private readonly IDeveroomErrorListServices _errorListServices; - private readonly IFileSystem _fileSystem; + private readonly IFileSystemForVs _fileSystem; private readonly IDeveroomLogger _logger; private readonly IMonitoringService _monitoringService; private readonly IProjectScope _projectScope; diff --git a/Reqnroll.VisualStudio/Editor/Classification/DeveroomClassifications.cs b/Reqnroll.VisualStudio/Editor/Classification/DeveroomClassifications.cs index 522613ce..853faee7 100644 --- a/Reqnroll.VisualStudio/Editor/Classification/DeveroomClassifications.cs +++ b/Reqnroll.VisualStudio/Editor/Classification/DeveroomClassifications.cs @@ -6,17 +6,17 @@ namespace Reqnroll.VisualStudio.Editor.Classification; internal static class DeveroomClassifications { - public const string Keyword = "deveroom.keyword"; - public const string Tag = "deveroom.tag"; - public const string Description = "deveroom.description"; - public const string Comment = "deveroom.comment"; - public const string DocString = "deveroom.doc_string"; - public const string DataTable = "deveroom.data_table"; - public const string DataTableHeader = "deveroom.data_table_header"; - - public const string UndefinedStep = "deveroom.undefined_step"; - public const string StepParameter = "deveroom.step_parameter"; - public const string ScenarioOutlinePlaceholder = "deveroom.scenario_outline_placeholder"; + public const string Keyword = "reqnroll.keyword"; + public const string Tag = "reqnroll.tag"; + public const string Description = "reqnroll.description"; + public const string Comment = "reqnroll.comment"; + public const string DocString = "reqnroll.doc_string"; + public const string DataTable = "reqnroll.data_table"; + public const string DataTableHeader = "reqnroll.data_table_header"; + + public const string UndefinedStep = "reqnroll.undefined_step"; + public const string StepParameter = "reqnroll.step_parameter"; + public const string ScenarioOutlinePlaceholder = "reqnroll.scenario_outline_placeholder"; // This disables "The field is never used" compiler's warning. Justification: the field is used by MEF. #pragma warning disable 169 @@ -203,7 +203,7 @@ public GherkinScenarioOutlinePlaceholderClassificationFormat() #if DEBUG - public const string DebugMarker = "deveroom.debug_marker"; + public const string DebugMarker = "reqnroll.debug_marker"; [Export] [Name(DebugMarker)] private static ClassificationTypeDefinition _debugEditorClassificationTypeDefinition; diff --git a/Reqnroll.VisualStudio/FileSystemExtensions.cs b/Reqnroll.VisualStudio/FileSystemExtensions.cs index 6148e512..b7c0a7e2 100644 --- a/Reqnroll.VisualStudio/FileSystemExtensions.cs +++ b/Reqnroll.VisualStudio/FileSystemExtensions.cs @@ -4,7 +4,7 @@ namespace Reqnroll.VisualStudio; public static class FileSystemExtensions { - public static string GetFilePathIfExists(this IFileSystem fileSystem, string filePath) + public static string GetFilePathIfExists(this IFileSystemForVs fileSystem, string filePath) { if (fileSystem.File.Exists(filePath)) return filePath; diff --git a/Reqnroll.VisualStudio/FileSystemWrapper.cs b/Reqnroll.VisualStudio/FileSystemForVs.cs similarity index 57% rename from Reqnroll.VisualStudio/FileSystemWrapper.cs rename to Reqnroll.VisualStudio/FileSystemForVs.cs index 9fd2aedf..017e57af 100644 --- a/Reqnroll.VisualStudio/FileSystemWrapper.cs +++ b/Reqnroll.VisualStudio/FileSystemForVs.cs @@ -2,10 +2,17 @@ namespace Reqnroll.VisualStudio; -[Export(typeof(IFileSystem))] -public class FileSystemWrapper : IFileSystem +// We cannot directly use IFileSystem as dependency (with MEF), because there might be other extensions (e.g. SpecFlow) +// that also export an implementation of IFileSystem. We need to have a separate contract for "our" file system. +public interface IFileSystemForVs : IFileSystem { - private readonly IFileSystem _fileSystem = new FileSystem(); + +} + +[Export(typeof(IFileSystemForVs))] +public class FileSystemForVs : IFileSystemForVs +{ + private readonly FileSystem _fileSystem = new(); public IFile File => _fileSystem.File; public IDirectory Directory => _fileSystem.Directory; diff --git a/Reqnroll.VisualStudio/ProjectSystem/Configuration/ConfigSource.cs b/Reqnroll.VisualStudio/ProjectSystem/Configuration/ConfigSource.cs index 392e962e..dbcaf131 100644 --- a/Reqnroll.VisualStudio/ProjectSystem/Configuration/ConfigSource.cs +++ b/Reqnroll.VisualStudio/ProjectSystem/Configuration/ConfigSource.cs @@ -4,7 +4,7 @@ public record ConfigSource(string FilePath, DateTimeOffset LastChangeTime, strin { public bool IsValid => !string.IsNullOrEmpty(FilePath); - public static ConfigSource TryGetConfigSource(string filePath, IFileSystem fileSystem, IDeveroomLogger logger) + public static ConfigSource TryGetConfigSource(string filePath, IFileSystemForVs fileSystem, IDeveroomLogger logger) { if (string.IsNullOrEmpty(filePath)) return CreateInvalid("Test assembly path could not be detected, therefore some Reqnroll Visual Studio Extension features are disabled. Try to rebuild the project or restart Visual Studio."); diff --git a/Reqnroll.VisualStudio/ProjectSystem/Configuration/ProjectScopeDeveroomConfigurationProvider.cs b/Reqnroll.VisualStudio/ProjectSystem/Configuration/ProjectScopeDeveroomConfigurationProvider.cs index 0b709b96..e0a3324d 100644 --- a/Reqnroll.VisualStudio/ProjectSystem/Configuration/ProjectScopeDeveroomConfigurationProvider.cs +++ b/Reqnroll.VisualStudio/ProjectSystem/Configuration/ProjectScopeDeveroomConfigurationProvider.cs @@ -26,7 +26,7 @@ public ProjectScopeDeveroomConfigurationProvider([NotNull] IProjectScope project private IDeveroomLogger Logger => _projectScope.IdeScope.Logger; private IMonitoringService MonitoringService => _projectScope.IdeScope.MonitoringService; - private IFileSystem FileSystem => _projectScope.IdeScope.FileSystem; + private IFileSystemForVs FileSystem => _projectScope.IdeScope.FileSystem; public event EventHandler WeakConfigurationChanged { diff --git a/Reqnroll.VisualStudio/ProjectSystem/IIdeScope.cs b/Reqnroll.VisualStudio/ProjectSystem/IIdeScope.cs index 125dc961..9320b42f 100644 --- a/Reqnroll.VisualStudio/ProjectSystem/IIdeScope.cs +++ b/Reqnroll.VisualStudio/ProjectSystem/IIdeScope.cs @@ -9,7 +9,7 @@ public interface IIdeScope IDeveroomWindowManager WindowManager { get; } IDeveroomOutputPaneServices DeveroomOutputPaneServices { get; } IDeveroomErrorListServices DeveroomErrorListServices { get; } - IFileSystem FileSystem { get; } + IFileSystemForVs FileSystem { get; } IProjectScope? GetProject(ITextBuffer textBuffer); event EventHandler WeakProjectsBuilt; event EventHandler WeakProjectOutputsUpdated; diff --git a/Reqnroll.VisualStudio/ProjectSystem/ReqnrollPackageDetector.cs b/Reqnroll.VisualStudio/ProjectSystem/ReqnrollPackageDetector.cs index 43c21e89..5d137a2d 100644 --- a/Reqnroll.VisualStudio/ProjectSystem/ReqnrollPackageDetector.cs +++ b/Reqnroll.VisualStudio/ProjectSystem/ReqnrollPackageDetector.cs @@ -33,9 +33,9 @@ internal class ReqnrollPackageDetector new(SpecSyncPackageRe) }; - private readonly IFileSystem _fileSystem; + private readonly IFileSystemForVs _fileSystem; - public ReqnrollPackageDetector(IFileSystem fileSystem) + public ReqnrollPackageDetector(IFileSystemForVs fileSystem) { _fileSystem = fileSystem; } diff --git a/Reqnroll.VisualStudio/ProjectSystem/SpecFlowPackageDetector.cs b/Reqnroll.VisualStudio/ProjectSystem/SpecFlowPackageDetector.cs index c11803db..56533d44 100644 --- a/Reqnroll.VisualStudio/ProjectSystem/SpecFlowPackageDetector.cs +++ b/Reqnroll.VisualStudio/ProjectSystem/SpecFlowPackageDetector.cs @@ -36,9 +36,9 @@ internal class SpecFlowPackageDetector new(SpecSyncPackageRe) }; - private readonly IFileSystem _fileSystem; + private readonly IFileSystemForVs _fileSystem; - public SpecFlowPackageDetector(IFileSystem fileSystem) + public SpecFlowPackageDetector(IFileSystemForVs fileSystem) { _fileSystem = fileSystem; } diff --git a/Reqnroll.VisualStudio/ProjectSystem/WelcomeService.cs b/Reqnroll.VisualStudio/ProjectSystem/WelcomeService.cs index e62a4a73..5f2193f5 100644 --- a/Reqnroll.VisualStudio/ProjectSystem/WelcomeService.cs +++ b/Reqnroll.VisualStudio/ProjectSystem/WelcomeService.cs @@ -11,7 +11,7 @@ public interface IWelcomeService public class WelcomeService : IWelcomeService { private static DispatcherTimer _welcomeMessageTimer; - private readonly IFileSystem _fileSystem; + private readonly IFileSystemForVs _fileSystem; private readonly IGuidanceConfiguration _guidanceConfiguration; private readonly IRegistryManager _registryManager; private readonly IServiceProvider _serviceProvider; @@ -22,7 +22,7 @@ public class WelcomeService : IWelcomeService [ImportingConstructor] public WelcomeService([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider, IRegistryManager registryManager, IVersionProvider versionProvider, - IGuidanceConfiguration guidanceConfiguration, IFileSystem fileSystem) + IGuidanceConfiguration guidanceConfiguration, IFileSystemForVs fileSystem) { _serviceProvider = serviceProvider; _registryManager = registryManager; diff --git a/Reqnroll.VisualStudio/WindowsFileAssociationDetector.cs b/Reqnroll.VisualStudio/WindowsFileAssociationDetector.cs index 5b15bd9d..6c0e2812 100644 --- a/Reqnroll.VisualStudio/WindowsFileAssociationDetector.cs +++ b/Reqnroll.VisualStudio/WindowsFileAssociationDetector.cs @@ -8,10 +8,10 @@ public class WindowsFileAssociationDetector private const string ProgId = "Reqnroll.GherkinFile"; private const string FriendlyTypeName = "Gherkin Specification File for Reqnroll"; - private readonly IFileSystem _fileSystem; + private readonly IFileSystemForVs _fileSystem; private readonly IIdeScope _ideScope; - public WindowsFileAssociationDetector(IFileSystem fileSystem, IIdeScope ideScope) + public WindowsFileAssociationDetector(IFileSystemForVs fileSystem, IIdeScope ideScope) { _fileSystem = fileSystem; _ideScope = ideScope; diff --git a/Tests/Reqnroll.VisualStudio.Tests/Analytics/FileUserIdStoreTests.cs b/Tests/Reqnroll.VisualStudio.Tests/Analytics/FileUserIdStoreTests.cs index 7726a06a..10dfe1b9 100644 --- a/Tests/Reqnroll.VisualStudio.Tests/Analytics/FileUserIdStoreTests.cs +++ b/Tests/Reqnroll.VisualStudio.Tests/Analytics/FileUserIdStoreTests.cs @@ -4,7 +4,7 @@ namespace Reqnroll.VisualStudio.Tests.Analytics; public class FileUserIdStoreTests { private const string UserId = "491ed5c0-9f25-4c27-941a-19b17cc81c87"; - private Mock fileSystemStub; + private Mock fileSystemStub; [Fact] public void Should_GetUserIdFromFile_WhenFileExists() @@ -36,7 +36,7 @@ public void Should_PersistNewlyGeneratedUserId_WhenNoUserIdExists() public FileUserIdStore CreateSut() { - fileSystemStub = new Mock(); + fileSystemStub = new Mock(); return new FileUserIdStore(fileSystemStub.Object); } diff --git a/Tests/Reqnroll.VisualStudio.Tests/Diagnostics/LoggingTests.cs b/Tests/Reqnroll.VisualStudio.Tests/Diagnostics/LoggingTests.cs index 7c6aba32..f940649d 100644 --- a/Tests/Reqnroll.VisualStudio.Tests/Diagnostics/LoggingTests.cs +++ b/Tests/Reqnroll.VisualStudio.Tests/Diagnostics/LoggingTests.cs @@ -10,7 +10,7 @@ public class LoggingTests public void MessageIsLogged(TraceLevel logLevel) { //arrange - var fileSystem = new MockFileSystem(); + var fileSystem = new MockFileSystemForVs(); var logger = AsynchronousFileLogger.CreateInstance(fileSystem); Warmup(logger, fileSystem); @@ -29,7 +29,7 @@ public void MessageIsLogged(TraceLevel logLevel) $"{message.TimeStamp:yyyy-MM-ddTHH\\:mm\\:ss.fffzzz}, {message.Level}@{message.ManagedThreadId}, {message.CallerMethod}: {message.Message}"); } - private void Warmup(AsynchronousFileLogger logger, IFileSystem fileSystem) + private void Warmup(AsynchronousFileLogger logger, IFileSystemForVs fileSystem) { var message = new LogMessage(TraceLevel.Error, "warmup", nameof(MessageIsLogged)); logger.Log(message); @@ -43,7 +43,7 @@ private void Warmup(AsynchronousFileLogger logger, IFileSystem fileSystem) public void DisposeStopsLogging() { //arrange - var fileSystem = new MockFileSystem(); + var fileSystem = new MockFileSystemForVs(); var logger = AsynchronousFileLogger.CreateInstance(fileSystem); Warmup(logger, fileSystem); diff --git a/Tests/Reqnroll.VisualStudio.Tests/ProjectSystem/ReqnrollPackageDetectorTests.cs b/Tests/Reqnroll.VisualStudio.Tests/ProjectSystem/ReqnrollPackageDetectorTests.cs index fa3e2a64..ce6e6716 100644 --- a/Tests/Reqnroll.VisualStudio.Tests/ProjectSystem/ReqnrollPackageDetectorTests.cs +++ b/Tests/Reqnroll.VisualStudio.Tests/ProjectSystem/ReqnrollPackageDetectorTests.cs @@ -14,7 +14,7 @@ public class ReqnrollPackageDetectorTests @"C:\MyProject\packages\SpecSync.AzureDevOps.Reqnroll.2-4.2.0.0"; private const string SpecFlow240PackagePathSolutionPackages = @"C:\MyProject\packages\Reqnroll.2.4.0"; - private readonly MockFileSystem _mockFileSystem = new(); + private readonly MockFileSystemForVs _mockFileSystem = new(); public ReqnrollPackageDetectorTests() { diff --git a/Tests/Reqnroll.VisualStudio.VsxStubs/MockFileSystemForVs.cs b/Tests/Reqnroll.VisualStudio.VsxStubs/MockFileSystemForVs.cs new file mode 100644 index 00000000..15a0abe4 --- /dev/null +++ b/Tests/Reqnroll.VisualStudio.VsxStubs/MockFileSystemForVs.cs @@ -0,0 +1,4 @@ +namespace Reqnroll.VisualStudio.VsxStubs; +public class MockFileSystemForVs : MockFileSystem, IFileSystemForVs +{ +} diff --git a/Tests/Reqnroll.VisualStudio.VsxStubs/ProjectSystem/StubIdeScope.cs b/Tests/Reqnroll.VisualStudio.VsxStubs/ProjectSystem/StubIdeScope.cs index e0fd154c..44ad0e99 100644 --- a/Tests/Reqnroll.VisualStudio.VsxStubs/ProjectSystem/StubIdeScope.cs +++ b/Tests/Reqnroll.VisualStudio.VsxStubs/ProjectSystem/StubIdeScope.cs @@ -61,7 +61,7 @@ public IProjectScope GetProject(ITextBuffer textBuffer) => public IDeveroomLogger Logger => CompositeLogger; public IIdeActions Actions { get; set; } public IDeveroomWindowManager WindowManager => StubWindowManager; - public IFileSystem FileSystem { get; private set; } = new MockFileSystem(); + public IFileSystemForVs FileSystem { get; private set; } = new MockFileSystemForVs(); public IDeveroomOutputPaneServices DeveroomOutputPaneServices { get; } = new Mock().Object; @@ -189,7 +189,7 @@ public void TriggerProjectsBuilt() public void UsePhysicalFileSystem() { - FileSystem = new FileSystem(); + FileSystem = new FileSystemForVs(); } public void Dispose()