Fix app local resolution logic

This commit is contained in:
Pavel Krymets 2016-02-17 16:39:48 -08:00
parent b50fd8f0d5
commit 93570ea4aa
2 changed files with 69 additions and 8 deletions

View file

@ -21,7 +21,11 @@ namespace Microsoft.Extensions.DependencyModel.Tests
[Fact]
public void ResolvesProjectType()
{
var resolver = new AppBaseCompilationAssemblyResolver();
var fileSystem = FileSystemMockBuilder
.Create()
.AddFiles(BasePathRefs, TestLibraryFactory.DefaultAssembly)
.Build();
var resolver = new AppBaseCompilationAssemblyResolver(fileSystem, BasePath);
var library = TestLibraryFactory.Create(
TestLibraryFactory.ProjectType,
assemblies: TestLibraryFactory.EmptyAssemblies);
@ -34,7 +38,11 @@ namespace Microsoft.Extensions.DependencyModel.Tests
[Fact]
public void ResolvesPackageType()
{
var resolver = new AppBaseCompilationAssemblyResolver();
var fileSystem = FileSystemMockBuilder
.Create()
.AddFiles(BasePathRefs, TestLibraryFactory.DefaultAssembly)
.Build();
var resolver = new AppBaseCompilationAssemblyResolver(fileSystem, BasePath);
var library = TestLibraryFactory.Create(
TestLibraryFactory.PackageType,
assemblies: TestLibraryFactory.EmptyAssemblies);
@ -47,7 +55,11 @@ namespace Microsoft.Extensions.DependencyModel.Tests
[Fact]
public void ResolvesReferenceAssemblyType()
{
var resolver = new AppBaseCompilationAssemblyResolver();
var fileSystem = FileSystemMockBuilder
.Create()
.AddFiles(BasePathRefs, TestLibraryFactory.DefaultAssembly)
.Build();
var resolver = new AppBaseCompilationAssemblyResolver(fileSystem, BasePath);
var library = TestLibraryFactory.Create(
TestLibraryFactory.ReferenceAssemblyType,
assemblies: TestLibraryFactory.EmptyAssemblies);
@ -57,6 +69,46 @@ namespace Microsoft.Extensions.DependencyModel.Tests
Assert.True(result);
}
[Fact]
public void RequiresExistingRefsFolderForNonProjects()
{
var fileSystem = FileSystemMockBuilder
.Create()
.AddFiles(BasePath, TestLibraryFactory.DefaultAssembly, TestLibraryFactory.SecondAssembly)
.Build();
var library = TestLibraryFactory.Create(
TestLibraryFactory.ReferenceAssemblyType,
assemblies: TestLibraryFactory.TwoAssemblies);
var resolver = new AppBaseCompilationAssemblyResolver(fileSystem, BasePath);
var assemblies = new List<string>();
var result = resolver.TryResolveAssemblyPaths(library, assemblies);
Assert.False(result);
assemblies.Should().HaveCount(0);
}
[Fact]
public void ResolvesProjectWithoutRefsFolder()
{
var fileSystem = FileSystemMockBuilder
.Create()
.AddFiles(BasePath, TestLibraryFactory.DefaultAssembly, TestLibraryFactory.SecondAssembly)
.Build();
var library = TestLibraryFactory.Create(
TestLibraryFactory.ProjectType,
assemblies: TestLibraryFactory.TwoAssemblies);
var resolver = new AppBaseCompilationAssemblyResolver(fileSystem, BasePath);
var assemblies = new List<string>();
var result = resolver.TryResolveAssemblyPaths(library, assemblies);
Assert.True(result);
assemblies.Should().HaveCount(2);
assemblies.Should().Contain(Path.Combine(BasePath, TestLibraryFactory.DefaultAssembly));
assemblies.Should().Contain(Path.Combine(BasePath, TestLibraryFactory.SecondAssembly));
}
[Fact]
public void RequiresAllLibrariesToExist()
{
@ -84,6 +136,7 @@ namespace Microsoft.Extensions.DependencyModel.Tests
var fileSystem = FileSystemMockBuilder
.Create()
.AddFiles(BasePath, TestLibraryFactory.DefaultAssembly, TestLibraryFactory.SecondAssembly)
.AddFiles(BasePathRefs, "Dummy.dll")
.Build();
var library = TestLibraryFactory.Create(
TestLibraryFactory.ReferenceAssemblyType,