public async Task CanInstall_Directory() { MockInstallerFactory factory = new MockInstallerFactory(); MockManagedTemplatePackageProvider provider = new MockManagedTemplatePackageProvider(); string installPath = _environmentSettingsHelper.CreateTemporaryFolder(); IEngineEnvironmentSettings engineEnvironmentSettings = _environmentSettingsHelper.CreateEnvironment(virtualize: true); FolderInstaller folderInstaller = new FolderInstaller(engineEnvironmentSettings, factory); InstallRequest request = new InstallRequest(installPath); Assert.True(await folderInstaller.CanInstallAsync(request, CancellationToken.None).ConfigureAwait(false)); InstallResult result = await folderInstaller.InstallAsync(request, provider, CancellationToken.None).ConfigureAwait(false); Assert.True(result.Success); Assert.Equal(request, result.InstallRequest); Assert.Equal(InstallerErrorCode.Success, result.Error); result.ErrorMessage.Should().BeNullOrEmpty(); var source = (FolderManagedTemplatePackage)result.TemplatePackage; source.MountPointUri.Should().Be(installPath); source.Version.Should().BeNullOrEmpty(); source.DisplayName.Should().Be(installPath); source.Identifier.Should().Be(installPath); source.Installer.Should().Be(folderInstaller); source.Provider.Should().Be(provider); }
public async Task CanUninstall_Success() { MockInstallerFactory factory = new MockInstallerFactory(); MockManagedTemplatePackageProvider provider = new MockManagedTemplatePackageProvider(); string installPath = _environmentSettingsHelper.CreateTemporaryFolder(); IEngineEnvironmentSettings engineEnvironmentSettings = _environmentSettingsHelper.CreateEnvironment(virtualize: true); FolderInstaller folderInstaller = new FolderInstaller(engineEnvironmentSettings, factory); InstallRequest request = new InstallRequest(installPath); InstallResult result = await folderInstaller.InstallAsync(request, provider, CancellationToken.None).ConfigureAwait(false); Assert.True(result.Success); Assert.Equal(request, result.InstallRequest); Assert.Equal(InstallerErrorCode.Success, result.Error); result.ErrorMessage.Should().BeNullOrEmpty(); var source = (FolderManagedTemplatePackage)result.TemplatePackage; source.Should().NotBeNull(); source.MountPointUri.Should().Be(installPath); Directory.Exists(installPath); UninstallResult uninstallResult = await folderInstaller.UninstallAsync(source, provider, CancellationToken.None).ConfigureAwait(false); Assert.True(uninstallResult.Success); Assert.Equal(source, uninstallResult.TemplatePackage); Assert.Equal(InstallerErrorCode.Success, result.Error); result.ErrorMessage.Should().BeNullOrEmpty(); //directory is not removed Directory.Exists(installPath); }
public async Task CannotInstall_NotExist() { MockInstallerFactory factory = new MockInstallerFactory(); MockManagedTemplatePackageProvider provider = new MockManagedTemplatePackageProvider(); IEngineEnvironmentSettings engineEnvironmentSettings = _environmentSettingsHelper.CreateEnvironment(virtualize: true); FolderInstaller folderInstaller = new FolderInstaller(engineEnvironmentSettings, factory); InstallRequest request = new InstallRequest("not found"); Assert.False(await folderInstaller.CanInstallAsync(request, CancellationToken.None).ConfigureAwait(false)); InstallResult result = await folderInstaller.InstallAsync(request, provider, CancellationToken.None).ConfigureAwait(false); Assert.False(result.Success); Assert.Equal(request, result.InstallRequest); Assert.Equal(InstallerErrorCode.PackageNotFound, result.Error); result.ErrorMessage.Should().NotBeNullOrEmpty(); result.TemplatePackage.Should().BeNull(); }