Browse Source

Enable logging for the shared package repository when installing and uninstalling NuGet packages.

pull/15/head
mrward 15 years ago
parent
commit
f68d4162e8
  1. 2
      src/AddIns/Misc/PackageManagement/Project/Src/ISharpDevelopPackageRepositoryFactory.cs
  2. 4
      src/AddIns/Misc/PackageManagement/Project/Src/PackageRepositoryCache.cs
  3. 35
      src/AddIns/Misc/PackageManagement/Project/Src/SharpDevelopPackageManager.cs
  4. 25
      src/AddIns/Misc/PackageManagement/Project/Src/SharpDevelopPackageManagerFactory.cs
  5. 4
      src/AddIns/Misc/PackageManagement/Project/Src/SharpDevelopPackageRepositoryFactory.cs
  6. 4
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageRepositoryFactory.cs
  7. 10
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakeSharedPackageRepository.cs
  8. 18
      src/AddIns/Misc/PackageManagement/Test/Src/PackageRepositoryCacheTests.cs
  9. 28
      src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopPackageManagerFactoryTests.cs
  10. 7
      src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopPackageManagerTests.cs

2
src/AddIns/Misc/PackageManagement/Project/Src/ISharpDevelopPackageRepositoryFactory.cs

@ -8,6 +8,6 @@ namespace ICSharpCode.PackageManagement @@ -8,6 +8,6 @@ namespace ICSharpCode.PackageManagement
{
public interface ISharpDevelopPackageRepositoryFactory : IPackageRepositoryFactory
{
ISharedPackageRepository CreateSharedRepository(string path);
ISharedPackageRepository CreateSharedRepository(IPackagePathResolver pathResolver, IFileSystem fileSystem);
}
}

4
src/AddIns/Misc/PackageManagement/Project/Src/PackageRepositoryCache.cs

@ -48,9 +48,9 @@ namespace ICSharpCode.PackageManagement @@ -48,9 +48,9 @@ namespace ICSharpCode.PackageManagement
return repository;
}
public ISharedPackageRepository CreateSharedRepository(string path)
public ISharedPackageRepository CreateSharedRepository(IPackagePathResolver pathResolver, IFileSystem fileSystem)
{
return factory.CreateSharedRepository(path);
return factory.CreateSharedRepository(pathResolver, fileSystem);
}
}
}

35
src/AddIns/Misc/PackageManagement/Project/Src/SharpDevelopPackageManager.cs

@ -13,42 +13,15 @@ namespace ICSharpCode.PackageManagement @@ -13,42 +13,15 @@ namespace ICSharpCode.PackageManagement
IProjectSystem projectSystem;
public SharpDevelopPackageManager(
IPackageRepository sourceRepository,
MSBuildBasedProject project,
ISharedPackageRepository localRepository,
PackageRepositoryPaths repositoryPaths)
: this(
sourceRepository,
new SharpDevelopProjectSystem(project),
localRepository,
repositoryPaths)
{
}
public SharpDevelopPackageManager(
IPackageRepository sourceRepository,
IProjectSystem projectSystem,
ISharedPackageRepository localRepository,
PackageRepositoryPaths repositoryPaths)
: this(
sourceRepository,
projectSystem,
localRepository,
repositoryPaths,
repositoryPaths.SolutionPackagesPath)
{
}
SharpDevelopPackageManager(
IPackageRepository sourceRepository,
IProjectSystem projectSystem,
IFileSystem fileSystem,
ISharedPackageRepository localRepository,
PackageRepositoryPaths repositoryPaths,
string solutionPackagesPath)
IPackagePathResolver pathResolver)
: base(
sourceRepository,
new DefaultPackagePathResolver(solutionPackagesPath),
new PhysicalFileSystem(solutionPackagesPath),
pathResolver,
fileSystem,
localRepository)
{
this.projectSystem = projectSystem;

25
src/AddIns/Misc/PackageManagement/Project/Src/SharpDevelopPackageManagerFactory.cs

@ -31,10 +31,25 @@ namespace ICSharpCode.PackageManagement @@ -31,10 +31,25 @@ namespace ICSharpCode.PackageManagement
public ISharpDevelopPackageManager CreatePackageManager(IPackageRepository packageRepository, MSBuildBasedProject project)
{
PackageRepositoryPaths repositoryPaths = new PackageRepositoryPaths(project, options);
IFileSystem fileSystem = CreateFileSystemThatWillContainPackages(project);
return CreatePackageManager(fileSystem, packageRepository, project);
}
IFileSystem CreateFileSystemThatWillContainPackages(MSBuildBasedProject project)
{
var repositoryPaths = new PackageRepositoryPaths(project, options);
return new PhysicalFileSystem(repositoryPaths.SolutionPackagesPath);
}
ISharpDevelopPackageManager CreatePackageManager(
IFileSystem fileSystem,
IPackageRepository packageRepository,
MSBuildBasedProject project)
{
DefaultPackagePathResolver pathResolver = new DefaultPackagePathResolver(fileSystem);
ISharedPackageRepository sharedRepository = CreateSharedRepository(pathResolver, fileSystem);
IProjectSystem projectSystem = CreateProjectSystem(project);
ISharedPackageRepository sharedRepository = CreateSharedRepository(repositoryPaths.SolutionPackagesPath);
return new SharpDevelopPackageManager(packageRepository, projectSystem, sharedRepository, repositoryPaths);
return new SharpDevelopPackageManager(packageRepository, projectSystem, fileSystem, sharedRepository, pathResolver);
}
IProjectSystem CreateProjectSystem(MSBuildBasedProject project)
@ -42,9 +57,9 @@ namespace ICSharpCode.PackageManagement @@ -42,9 +57,9 @@ namespace ICSharpCode.PackageManagement
return projectSystemFactory.CreateProjectSystem(project);
}
ISharedPackageRepository CreateSharedRepository(string path)
ISharedPackageRepository CreateSharedRepository(IPackagePathResolver pathResolver, IFileSystem fileSystem)
{
return packageRepositoryFactory.CreateSharedRepository(path);
return packageRepositoryFactory.CreateSharedRepository(pathResolver, fileSystem);
}
}
}

4
src/AddIns/Misc/PackageManagement/Project/Src/SharpDevelopPackageRepositoryFactory.cs

@ -8,9 +8,9 @@ namespace ICSharpCode.PackageManagement @@ -8,9 +8,9 @@ namespace ICSharpCode.PackageManagement
{
public class SharpDevelopPackageRepositoryFactory : PackageRepositoryFactory, ISharpDevelopPackageRepositoryFactory
{
public ISharedPackageRepository CreateSharedRepository(string path)
public ISharedPackageRepository CreateSharedRepository(IPackagePathResolver pathResolver, IFileSystem fileSystem)
{
return new SharedPackageRepository(path);
return new SharedPackageRepository(pathResolver, fileSystem);
}
}
}

4
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakePackageRepositoryFactory.cs

@ -35,9 +35,9 @@ namespace PackageManagement.Tests.Helpers @@ -35,9 +35,9 @@ namespace PackageManagement.Tests.Helpers
return FakePackageRepository;
}
public ISharedPackageRepository CreateSharedRepository(string path)
public ISharedPackageRepository CreateSharedRepository(IPackagePathResolver pathResolver, IFileSystem fileSystem)
{
return new FakeSharedPackageRepository(path);
return new FakeSharedPackageRepository(pathResolver, fileSystem);
}
}
}

10
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/FakeSharedPackageRepository.cs

@ -10,16 +10,18 @@ namespace PackageManagement.Tests.Helpers @@ -10,16 +10,18 @@ namespace PackageManagement.Tests.Helpers
{
public class FakeSharedPackageRepository : FakePackageRepository, ISharedPackageRepository
{
public string PathPassedToConstructor;
public string PathPassedToRegisterRepository;
public IPackagePathResolver PackagePathResolverPassedToConstructor;
public IFileSystem FileSystemPassedToConstructor;
public FakeSharedPackageRepository(string path)
public FakeSharedPackageRepository()
{
PathPassedToConstructor = path;
}
public FakeSharedPackageRepository()
public FakeSharedPackageRepository(IPackagePathResolver pathResolver, IFileSystem fileSystem)
{
this.PackagePathResolverPassedToConstructor = pathResolver;
this.FileSystemPassedToConstructor = fileSystem;
}
public bool IsReferenced(string packageId, Version version)

18
src/AddIns/Misc/PackageManagement/Test/Src/PackageRepositoryCacheTests.cs

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
using System;
using ICSharpCode.PackageManagement;
using ICSharpCode.PackageManagement.Design;
using NuGet;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
@ -68,12 +69,23 @@ namespace PackageManagement.Tests @@ -68,12 +69,23 @@ namespace PackageManagement.Tests
}
[Test]
public void CreatedSharedRepository_PathPassed_PathUsedToCreatedSharedRepository()
public void CreatedSharedRepository_PathResolverPassed_PathResolverUsedToCreatedSharedRepository()
{
CreateCache();
FakeSharedPackageRepository repository = cache.CreateSharedRepository("abc") as FakeSharedPackageRepository;
FakePackagePathResolver resolver = new FakePackagePathResolver();
FakeSharedPackageRepository repository = cache.CreateSharedRepository(resolver, null) as FakeSharedPackageRepository;
Assert.AreEqual("abc", repository.PathPassedToConstructor);
Assert.AreEqual(resolver, repository.PackagePathResolverPassedToConstructor);
}
[Test]
public void CreatedSharedRepository_FileSystemPassed_FileSystemUsedToCreatedSharedRepository()
{
CreateCache();
FakeFileSystem fileSystem = new FakeFileSystem();
FakeSharedPackageRepository repository = cache.CreateSharedRepository(null, fileSystem) as FakeSharedPackageRepository;
Assert.AreEqual(fileSystem, repository.FileSystemPassedToConstructor);
}
}
}

28
src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopPackageManagerFactoryTests.cs

@ -54,7 +54,7 @@ namespace PackageManagement.Tests @@ -54,7 +54,7 @@ namespace PackageManagement.Tests
}
[Test]
public void CreatePackageManager_PackagesSolutionFolderDefinedInOptions_PackageManagerLocalRepositoryFolderIsPackagesFolderInsideSolutionFolder()
public void CreatePackageManager_PackagesSolutionFolderDefinedInOptions_SharedLocalRepositoryFileSystemRootIsSolutionFolder()
{
CreateFactory();
CreateTestProject();
@ -62,14 +62,14 @@ namespace PackageManagement.Tests @@ -62,14 +62,14 @@ namespace PackageManagement.Tests
options.PackagesDirectory = "MyPackages";
CreatePackageManager();
string expectedDirectory = @"c:\projects\MyProject\MyPackages";
FakeSharedPackageRepository sharedRepository = packageManager.LocalRepository as FakeSharedPackageRepository;
Assert.AreEqual(expectedDirectory, sharedRepository.PathPassedToConstructor);
string expectedRoot = @"c:\projects\MyProject\MyPackages";
Assert.AreEqual(expectedRoot, sharedRepository.FileSystemPassedToConstructor.Root);
}
[Test]
public void CreatePackageManager_PackagesSolutionFolderDefinedInOptions_PackageManagerFileSystemRootFolderIsPackagesFolderInsideSolutionFolder()
public void CreatePackageManager_PackagesSolutionFolderDefinedInOptions_SharedLocalRepositoryPackagePathResolverCreatedWithPackagesFolderInsideSolutionFolder()
{
CreateFactory();
CreateTestProject();
@ -77,12 +77,28 @@ namespace PackageManagement.Tests @@ -77,12 +77,28 @@ namespace PackageManagement.Tests
options.PackagesDirectory = "MyPackages";
CreatePackageManager();
string expectedDirectory = @"c:\projects\MyProject\MyPackages";
string actualDirectory = packageManager.FileSystem.Root;
FakeSharedPackageRepository sharedRepository = packageManager.LocalRepository as FakeSharedPackageRepository;
FakePackage package = new FakePackage("Test.Package");
package.Version = new Version(1, 0, 0, 0);
string expectedDirectory = @"c:\projects\MyProject\MyPackages\Test.Package.1.0.0.0";
string actualDirectory = sharedRepository.PackagePathResolverPassedToConstructor.GetInstallPath(package);
Assert.AreEqual(expectedDirectory, actualDirectory);
}
[Test]
public void CreatePackageManager_PackagesSolutionFolderDefinedInOptions_LocalRepositoryFileSystemIsPackageManagerFileSystem()
{
CreateFactory();
CreateTestProject();
CreatePackageManager();
FakeSharedPackageRepository sharedRepository = packageManager.LocalRepository as FakeSharedPackageRepository;
Assert.AreEqual(packageManager.FileSystem, sharedRepository.FileSystemPassedToConstructor);
}
[Test]
public void CreatePackageManager_PackagesSolutionFolderDefinedInOptions_PackageManagerPathResolverUsesPackagesFolderInsideSolutionFolder()
{

7
src/AddIns/Misc/PackageManagement/Test/Src/SharpDevelopPackageManagerTests.cs

@ -24,6 +24,7 @@ namespace PackageManagement.Tests @@ -24,6 +24,7 @@ namespace PackageManagement.Tests
PackageRepositoryPaths repositoryPaths;
PackageReferenceRepositoryHelper packageRefRepositoryHelper;
TestableProjectManager testableProjectManager;
FakeFileSystem fakeFileSystem;
void CreatePackageManager(IProject project, PackageReferenceRepositoryHelper packageRefRepositoryHelper)
{
@ -31,14 +32,18 @@ namespace PackageManagement.Tests @@ -31,14 +32,18 @@ namespace PackageManagement.Tests
options.PackagesDirectory = "packages";
repositoryPaths = new PackageRepositoryPaths(project, options);
var pathResolver = new DefaultPackagePathResolver(repositoryPaths.SolutionPackagesPath);
fakeFileSystem = new FakeFileSystem();
fakeFeedSourceRepository = new FakePackageRepository();
fakeSolutionSharedRepository = packageRefRepositoryHelper.FakeSharedSourceRepository;
packageManager = new SharpDevelopPackageManager(fakeFeedSourceRepository,
packageRefRepositoryHelper.FakeProjectSystem,
fakeFileSystem,
fakeSolutionSharedRepository,
repositoryPaths);
pathResolver);
}
void CreatePackageManager()

Loading…
Cancel
Save