// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; using System.Collections.Generic; using ICSharpCode.PackageManagement; using NuGet; namespace ICSharpCode.PackageManagement.Design { public class FakePackageManager : ISharpDevelopPackageManager { public FakeProjectManager FakeProjectManager = new FakeProjectManager(); public FakePackageManagementProjectService FakeProjectService = new FakePackageManagementProjectService(); public bool IsRefreshProjectBrowserCalledWhenInstallPackageCalled; public bool IsRefreshProjectBrowserCalledWhenUninstallPackageCalled; public IPackage PackagePassedToInstallPackage; public bool IgnoreDependenciesPassedToInstallPackage; public InstallPackageParameters ParametersPassedToInstallPackage; public IPackage PackagePassedToUninstallPackage; public struct InstallPackageParameters { public IPackage PackagePassedToInstallPackage; public bool IgnoreDependenciesPassedToInstallPackage; public IEnumerable PackageOperationsPassedToInstallPackage; public override string ToString() { return String.Format("Package: {0}, IgnoreDependencies: {1}", PackagePassedToInstallPackage, IgnoreDependenciesPassedToInstallPackage); } } #pragma warning disable 67 public event EventHandler PackageInstalled; public event EventHandler PackageInstalling; public event EventHandler PackageUninstalled; public event EventHandler PackageUninstalling; #pragma warning restore 67 public IFileSystem FileSystem { get { return FakeFileSystem; } set { FakeFileSystem = value as FakeFileSystem; } } public FakeFileSystem FakeFileSystem = new FakeFileSystem(); public IPackageRepository LocalRepository { get; set; } public ILogger Logger { get; set; } public IPackageRepository SourceRepository { get; set; } public ISharpDevelopProjectManager ProjectManager { get; set; } public ILogger LoggerSetBeforeInstallPackageCalled; public FakePackageManager() { ProjectManager = FakeProjectManager; } public void InstallPackage(IPackage package, bool ignoreDependencies) { LoggerSetBeforeInstallPackageCalled = Logger; PackagePassedToInstallPackage = package; IgnoreDependenciesPassedToInstallPackage = ignoreDependencies; ParametersPassedToInstallPackage = new InstallPackageParameters(); ParametersPassedToInstallPackage.PackagePassedToInstallPackage = package; ParametersPassedToInstallPackage.IgnoreDependenciesPassedToInstallPackage = ignoreDependencies; IsRefreshProjectBrowserCalledWhenInstallPackageCalled = FakeProjectService.IsRefreshProjectBrowserCalled; } public void InstallPackage(string packageId, Version version, bool ignoreDependencies) { throw new NotImplementedException(); } public void UninstallPackage(IPackage package, bool forceRemove, bool removeDependencies) { throw new NotImplementedException(); } public void UninstallPackage(string packageId, Version version, bool forceRemove, bool removeDependencies) { throw new NotImplementedException(); } public void UninstallPackage(IPackage package) { PackagePassedToUninstallPackage = package; IsRefreshProjectBrowserCalledWhenUninstallPackageCalled = FakeProjectService.IsRefreshProjectBrowserCalled; } public void UpdatePackage(IPackage oldPackage, IPackage newPackage, bool updateDependencies) { throw new NotImplementedException(); } public void UpdatePackage(string packageId, Version version, bool updateDependencies) { throw new NotImplementedException(); } public void InstallPackage(IPackage package, IEnumerable operations, bool ignoreDependencies) { LoggerSetBeforeInstallPackageCalled = Logger; PackagePassedToInstallPackage = package; ParametersPassedToInstallPackage = new InstallPackageParameters(); ParametersPassedToInstallPackage.PackagePassedToInstallPackage = package; ParametersPassedToInstallPackage.PackageOperationsPassedToInstallPackage = operations; IgnoreDependenciesPassedToInstallPackage = ignoreDependencies; IsRefreshProjectBrowserCalledWhenInstallPackageCalled = FakeProjectService.IsRefreshProjectBrowserCalled; } public List PackageOperationsToReturnFromGetInstallPackageOperations = new List(); public IPackage PackagePassedToGetInstallPackageOperations; public bool IgnoreDependenciesPassedToGetInstallPackageOperations; public IEnumerable GetInstallPackageOperations(IPackage package, bool ignoreDependencies) { PackagePassedToGetInstallPackageOperations = package; IgnoreDependenciesPassedToGetInstallPackageOperations = ignoreDependencies; return PackageOperationsToReturnFromGetInstallPackageOperations; } public IPackage PackagePassedToUpdatePackage; public IEnumerable PackageOperationsPassedToUpdatePackage; public void UpdatePackage(IPackage package, IEnumerable operations) { PackagePassedToUpdatePackage = package; PackageOperationsPassedToUpdatePackage = operations; } } }