public async Task LocalDebuggerCommand_ExistingCommand_ReturnsUnmodified(string existingCommand) { var properties = IProjectPropertiesFactory.CreateWithPropertyAndValue(WindowsLocalDebugger.LocalDebuggerCommandProperty, existingCommand); var provider = new LocalDebuggerCommandValueProvider(); Assert.Equal(existingCommand, await provider.OnGetEvaluatedPropertyValueAsync(existingCommand, properties)); }
public async Task LocalDebuggerCommandArgumentsProvider_NonEmptyCommand_ReturnsUnmodifiedArgs(string command, string args) { var properties = IProjectPropertiesFactory.CreateWithPropertyAndValue(WindowsLocalDebugger.LocalDebuggerCommandProperty, command); var debugger = CreateInstance(); Assert.Equal(args, await debugger.OnGetEvaluatedPropertyValueAsync(args, properties)); }
public async Task GetApplicationManifest(string appManifestPropValue, string noManifestValue, string expectedValue) { var provider = new ApplicationManifestValueProvider(UnconfiguredProjectFactory.Create()); var defaultProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue("NoWin32Manifest", noManifestValue); var appManifestValue = await provider.OnGetEvaluatedPropertyValueAsync(appManifestPropValue, defaultProperties); Assert.Equal(expectedValue, appManifestValue); }
public static async Task GetPropertyAsync_ExistingProperties() { var expected = "echo $(ProjectDir)"; var projectProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue("PostBuildEvent", expected); var(success, actual) = await systemUnderTest.TryGetPropertyAsync(projectProperties); Assert.True(success); Assert.Equal(expected, actual); }
private static IVsHierarchy CreateIVSHierarchy(string targetFrameworkMoniker = ".NETCoreApp,Version=v3.0") { var projectProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue("TargetFrameworkMoniker", targetFrameworkMoniker); var propertiesProvider = IProjectPropertiesProviderFactory.Create(commonProps: projectProperties); var project = ConfiguredProjectFactory.Create(services: ConfiguredProjectServicesFactory.Create(projectPropertiesProvider: propertiesProvider)); var scope = IProjectCapabilitiesScopeFactory.Create(new[] { ProjectCapability.DotNet, ProjectCapability.PackageReferences }); var ivsHierarchy = IVsHierarchyFactory.ImplementAsUnconfiguredProject(UnconfiguredProjectFactory.Create(scope: scope, configuredProject: project)); return(ivsHierarchy); }
public async Task LocalDebuggerCommandArgumentsProvider_EmptyCommand_ReturnsExec(string executable, string dll, bool useOutputGroups, string args) { var properites = IProjectPropertiesFactory.CreateWithPropertyAndValue(WindowsLocalDebugger.LocalDebuggerCommandProperty, ""); var directory = Directory.GetCurrentDirectory(); var debugger = CreateInstance(executable, executable, useOutputGroups); Assert.Equal( $"exec {directory + Path.DirectorySeparatorChar + dll}.dll {args}", await debugger.OnGetEvaluatedPropertyValueAsync(args, properites) ); }
public async Task WhenGettingTheValue_ReturnsResourceFileIfWin32ResourceIsSet() { var provider = new ResourceSpecificationKindValueProvider(ITemporaryPropertyStorageFactory.Create()); var defaultProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue(ResourceSpecificationKindValueProvider.Win32ResourceMSBuildProperty, @"C:\alpha\beta\gamma.res"); var result = await provider.OnGetEvaluatedPropertyValueAsync( ResourceSpecificationKindValueProvider.ResourceSpecificationKindProperty, string.Empty, defaultProperties); Assert.Equal(expected: ResourceSpecificationKindValueProvider.ResourceFileValue, actual: result); }
public async Task OnSetPropertyValueAsync_ToAnythingOtherThanNone_ReturnsSameValue() { var provider = new NeutralLanguageValueProvider(); var projectProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue(NeutralLanguageValueProvider.NeutralLanguagePropertyName, "en-GB"); var updatedValue = await provider.OnSetPropertyValueAsync(NeutralLanguageValueProvider.NeutralLanguagePropertyName, "pt-BR", projectProperties); var valueInProjectProperties = await projectProperties.GetUnevaluatedPropertyValueAsync(NeutralLanguageValueProvider.NeutralLanguagePropertyName); Assert.Equal(expected: "pt-BR", actual: updatedValue); Assert.Equal(expected: "en-GB", actual: valueInProjectProperties); }
public async Task OnSetPropertyValueAsync_ToNoneValue_DeletesTheProperty() { var provider = new NeutralLanguageValueProvider(); var projectProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue(NeutralLanguageValueProvider.NeutralLanguagePropertyName, "en-GB"); var updatedValue = await provider.OnSetPropertyValueAsync(NeutralLanguageValueProvider.NeutralLanguagePropertyName, NeutralLanguageValueProvider.NoneValue, projectProperties); var valueInProjectProperties = await projectProperties.GetUnevaluatedPropertyValueAsync(NeutralLanguageValueProvider.NeutralLanguagePropertyName); Assert.Null(updatedValue); Assert.Null(valueInProjectProperties); }
public static async Task SetPropertyAsync_RemoveExistingProperties() { var postbuildEventProjectProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue("PostBuildEvent", "echo $(ProjectDir)"); var success = await systemUnderTest.TrySetPropertyAsync(" ", postbuildEventProjectProperties); Assert.True(success); var result = await postbuildEventProjectProperties.GetUnevaluatedPropertyValueAsync("PostBuildEvent"); Assert.Null(result); }
public async Task WhenGettingTheValue_ReturnsIconAndManifestIfManifestSet() { var provider = new ResourceSpecificationKindValueProvider(ITemporaryPropertyStorageFactory.Create()); var defaultProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue(ResourceSpecificationKindValueProvider.ApplicationManifestMSBuildProperty, @"C:\alpha\beta\app.config"); var result = await provider.OnGetEvaluatedPropertyValueAsync( ResourceSpecificationKindValueProvider.ResourceSpecificationKindProperty, string.Empty, defaultProperties); Assert.Equal(expected: ResourceSpecificationKindValueProvider.IconAndManifestValue, actual: result); }
public void GetBuildMacroValue(string macroName, string expectedValue, int expectedRetVal) { var projectProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue("MyBuildMacro", "MyBuildMacroValue"); var propertiesProvider = IProjectPropertiesProviderFactory.Create(commonProps: projectProperties); var configuredProjectServices = Mock.Of <ConfiguredProjectServices>(o => o.ProjectPropertiesProvider == propertiesProvider); var configuredProject = ConfiguredProjectFactory.Create(services: configuredProjectServices); var buildMacroInfo = CreateInstance(configuredProject); int retVal = buildMacroInfo.GetBuildMacroValue(macroName, out string?macroValue); Assert.Equal(expectedRetVal, retVal); Assert.Equal(expectedValue, macroValue); }
public void BuildMacroInfoTests_GetBuildMacroValue(string macroName, string expectedValue, int expectedRetVal) { var projectProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue("MyBuildMacro", "MyBuildMacroValue"); var propertiesProvider = IProjectPropertiesProviderFactory.Create(commonProps: projectProperties); var configuredProjectServices = Mock.Of <IConfiguredProjectServices>(o => o.ProjectPropertiesProvider == propertiesProvider); var configuredProject = ConfiguredProjectFactory.Create(services: configuredProjectServices); ActiveConfiguredProject <ConfiguredProject> activeConfiguredProject = ActiveConfiguredProjectFactory.ImplementValue(() => configuredProject); var threadingService = IProjectThreadingServiceFactory.Create(); var buildMacroInfo = new BuildMacroInfo(activeConfiguredProject, threadingService); int retVal = buildMacroInfo.GetBuildMacroValue(macroName, out string macroValue); Assert.Equal(expectedRetVal, retVal); Assert.Equal(expectedValue, macroValue); }
public static async Task SetPropertyTest_RemoveExistingProperties() { var root = @"<Project Sdk=""Microsoft.NET.Sdk""> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp1.1</TargetFramework> <PreBuildEvent>echo $(ProjectDir)</PreBuildEvent> </PropertyGroup> </Project>".AsProjectRootElement(); var prebuildEventProjectProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue("PreBuildEvent", "echo $(ProjectDir)"); await systemUnderTest.SetPropertyAsync(" ", prebuildEventProjectProperties, root); var result = await prebuildEventProjectProperties.GetUnevaluatedPropertyValueAsync("PreBuildEvent"); Assert.Null(result); }
public static async Task GetPropertyTest_ExistingProperties() { var root = @" <Project Sdk=""Microsoft.NET.Sdk""> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp1.1</TargetFramework> <PreBuildEvent>echo $(ProjectDir)</PreBuildEvent> </PropertyGroup> </Project>".AsProjectRootElement(); var expected = "echo $(ProjectDir)"; var projectProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue("PreBuildEvent", expected); var actual = await systemUnderTest.GetPropertyAsync(root, projectProperties); Assert.Equal(expected, actual); }
private static DotNetCoreProjectCompatibilityDetector CreateCompatibilityDetector(out IDialogServices dialogServices, string?versionDataString = null, Version?vsVersion = null, bool isSolutionOpen = false, bool hasNewProjects = false, bool usingPreviewSDK = false, bool isCapabilityMatch = true, string targetFrameworkMoniker = ".NETCoreApp,Version=v3.0") { dialogServices = IDialogServicesFactory.Create(); var additionalReference = dialogServices; var projectProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue("TargetFrameworkMoniker", targetFrameworkMoniker); var propertiesProvider = IProjectPropertiesProviderFactory.Create(commonProps: projectProperties); var project = ConfiguredProjectFactory.Create(services: ConfiguredProjectServicesFactory.Create(projectPropertiesProvider: propertiesProvider)); var scope = hasNewProjects ? IProjectCapabilitiesScopeFactory.Create(new[] { ProjectCapability.DotNet, ProjectCapability.PackageReferences }) : null; var projectAccessor = new Lazy <IProjectServiceAccessor>(() => IProjectServiceAccessorFactory.Create(scope, project)); var lazyDialogServices = new Lazy <IDialogServices>(() => additionalReference); var threadHandling = new Lazy <IProjectThreadingService>(() => IProjectThreadingServiceFactory.Create(verifyOnUIThread: false)); var vsShellUtilitiesHelper = new Lazy <IVsShellUtilitiesHelper>(() => IVsShellUtilitiesHelperFactory.Create(string.Empty, vsVersion ?? new Version("16.1"))); var fileSystem = new Lazy <IFileSystem>(() => IFileSystemFactory.Create(existsFunc: x => true, readAllTextFunc: x => versionDataString ?? defaultVersionDataString)); var httpClient = new Lazy <IHttpClient>(() => IHttpClientFactory.Create(versionDataString ?? defaultVersionDataString)); var vsUIShellService = IVsServiceFactory.Create <SVsUIShell, IVsUIShell>(Mock.Of <IVsUIShell>()); var settingsManagerService = IVsServiceFactory.Create <SVsSettingsPersistenceManager, ISettingsManager>(Mock.Of <ISettingsManager>()); var vsSolutionService = IVsServiceFactory.Create <SVsSolution, IVsSolution>(IVsSolutionFactory.CreateWithAdviseUnadviseSolutionEvents(1, isFullyLoaded: isSolutionOpen)); var vsAppIdService = IVsServiceFactory.Create <SVsAppId, IVsAppId>(Mock.Of <IVsAppId>()); var vsShellService = IVsServiceFactory.Create <SVsShell, IVsShell>(Mock.Of <IVsShell>()); var compatibilityDetector = new TestDotNetCoreProjectCompatibilityDetector(projectAccessor, lazyDialogServices, threadHandling, vsShellUtilitiesHelper, fileSystem, httpClient, vsUIShellService, settingsManagerService, vsSolutionService, vsAppIdService, vsShellService, hasNewProjects, usingPreviewSDK, isCapabilityMatch); return(compatibilityDetector); }
public async Task CheckValueAsync(string effectiveAnalysisLevel, string expectedWarningLevelOverriddenValue) { var provider = new WarningLevelOverriddenValueProvider(); var defaultProperties = IProjectPropertiesFactory.CreateWithPropertyAndValue( WarningLevelOverriddenValueProvider.EffectiveAnalysisLevelPropertyName, effectiveAnalysisLevel); var unevaluatedResult = await provider.OnGetUnevaluatedPropertyValueAsync( WarningLevelOverriddenValueProvider.WarningLevelOverriddenPropertyName, string.Empty, defaultProperties); Assert.Equal(expectedWarningLevelOverriddenValue, actual: unevaluatedResult); var evaluatedResult = await provider.OnGetEvaluatedPropertyValueAsync( WarningLevelOverriddenValueProvider.WarningLevelOverriddenPropertyName, string.Empty, defaultProperties); Assert.Equal(expectedWarningLevelOverriddenValue, actual: evaluatedResult); }