public async Task NonStandardEncoding_UsesProjectEncoding() { var projectFilePath = @"C:\ConsoleApp\ConsoleApp1\ConsoleApp1.csproj"; // Use some file encoding that's not the default var encoding = Encoding.Default.Equals(Encoding.UTF8) ? Encoding.UTF32 : Encoding.UTF8; var unconfiguredProject = UnconfiguredProjectFactory.Create(filePath: projectFilePath, projectEncoding: encoding); var msbuildAccessor = IProjectXmlAccessorFactory.ImplementGetProjectXml("<Project />"); var fileSystem = new IFileSystemMock(); var tempFilePath = @"C:\Temp\asdf.1234"; fileSystem.SetTempFile(tempFilePath); var textBufferManager = new TempFileTextBufferManager(unconfiguredProject, msbuildAccessor, IVsEditorAdaptersFactoryServiceFactory.Create(), ITextDocumentFactoryServiceFactory.Create(), IVsShellUtilitiesHelperFactory.Create(), fileSystem, new IProjectThreadingServiceMock(), IServiceProviderFactory.Create()); await textBufferManager.InitializeBufferAsync(); var tempProjectPath = Path.Combine(tempFilePath, "ConsoleApp1.csproj"); var tempFile = fileSystem.Files.First(data => StringComparers.Paths.Equals(tempProjectPath, data.Key)); Assert.Equal(encoding, tempFile.Value.FileEncoding); }
public async Task Initialize_CreatesTempFile() { var projectFilePath = @"C:\ConsoleApp\ConsoleApp1\ConsoleApp1.csproj"; var unconfiguredProject = UnconfiguredProjectFactory.Create(filePath: projectFilePath, projectEncoding: Encoding.Default); var msbuildAccessor = IProjectXmlAccessorFactory.ImplementGetProjectXml("<Project />"); var fileSystem = new IFileSystemMock(); var tempFilePath = @"C:\Temp\asdf.1234"; fileSystem.SetTempFile(tempFilePath); var textBufferManager = new TempFileTextBufferManager(unconfiguredProject, msbuildAccessor, IVsEditorAdaptersFactoryServiceFactory.Create(), ITextDocumentFactoryServiceFactory.Create(), IVsShellUtilitiesHelperFactory.Create(), fileSystem, new IProjectThreadingServiceMock(), IServiceProviderFactory.Create()); await textBufferManager.InitializeBufferAsync(); var tempProjectPath = Path.Combine(tempFilePath, "ConsoleApp1.csproj"); Assert.True(fileSystem.FileExists(tempProjectPath)); Assert.Equal("<Project />", fileSystem.ReadAllText(tempProjectPath)); }
public void NullThreadingService_Throws() { Assert.Throws <ArgumentNullException>("threadingService", () => new TempFileBufferStateListener( IProjectFileEditorPresenterFactory.Create(), IVsEditorAdaptersFactoryServiceFactory.Create(), ITextDocumentFactoryServiceFactory.Create(), null, IVsShellUtilitiesHelperFactory.Create(), IServiceProviderFactory.Create())); }
public void ProjectFileEditorPresenter_NullTextBufferListenerFactory_Throws() { Assert.Throws <ArgumentNullException>("textBufferListenerFactory", () => new ProjectFileEditorPresenter( IProjectThreadingServiceFactory.Create(), UnconfiguredProjectFactory.Create(), IServiceProviderFactory.Create(), IVsShellUtilitiesHelperFactory.Create(), ExportFactoryFactory.CreateInstance <IProjectFileModelWatcher>(), null, ExportFactoryFactory.CreateInstance <IFrameOpenCloseListener>(), ExportFactoryFactory.CreateInstance <ITextBufferManager>())); }
public void NullFileSystem_Throws() { Assert.Throws <ArgumentNullException>("fileSystem", () => new TempFileTextBufferManager( UnconfiguredProjectFactory.Create(), IProjectXmlAccessorFactory.Create(), IVsEditorAdaptersFactoryServiceFactory.Create(), ITextDocumentFactoryServiceFactory.Create(), IVsShellUtilitiesHelperFactory.Create(), null, IProjectThreadingServiceFactory.Create(), IServiceProviderFactory.Create())); }
public void ProjectFileEditorPresenter_UpdateProjectFileIncorrectEditorState_DoesNothing(int state) { var editorState = new ProjectFileEditorPresenterTester( IProjectThreadingServiceFactory.Create(), UnconfiguredProjectFactory.Create(), IServiceProviderFactory.Create(), IVsShellUtilitiesHelperFactory.Create(), ExportFactoryFactory.CreateInstance <IProjectFileModelWatcher>(), ExportFactoryFactory.CreateInstance <ITextBufferStateListener>(), ExportFactoryFactory.CreateInstance <IFrameOpenCloseListener>(), ExportFactoryFactory.CreateInstance <ITextBufferManager>()) { CurrentState = (ProjectFileEditorPresenter.EditorState)state }; Assert.Null(editorState.ScheduleProjectFileUpdate()); }
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); }