string.Equals(library.Type, "msbuildproject", StringComparison.OrdinalIgnoreCase);
var isPackage = string.Equals(library.Type, "package", StringComparison.OrdinalIgnoreCase);
+ var isReferenceAssembly = string.Equals(library.Type, "referenceassembly", StringComparison.OrdinalIgnoreCase);
if (!isProject &&
!isPackage &&
- !string.Equals(library.Type, "referenceassembly", StringComparison.OrdinalIgnoreCase))
+ !isReferenceAssembly &&
+ !string.Equals(library.Type, "reference", StringComparison.OrdinalIgnoreCase))
{
return false;
}
var refsPath = Path.Combine(_basePath, RefsDirectoryName);
var isPublished = _fileSystem.Directory.Exists(refsPath);
- // Resolving reference assebmlies requires refs folder to exist
- if (!isProject && !isPackage && !isPublished)
+ // Resolving reference assemblies requires refs folder to exist
+ if (isReferenceAssembly && !isPublished)
{
return false;
}
}
[Fact]
+ public void ResolvesReferenceType()
+ {
+ var fileSystem = FileSystemMockBuilder
+ .Create()
+ .AddFiles(BasePathRefs, TestLibraryFactory.DefaultAssembly)
+ .Build();
+ var resolver = CreateResolver(fileSystem);
+ var library = TestLibraryFactory.Create(
+ TestLibraryFactory.ReferenceType,
+ assemblies: TestLibraryFactory.EmptyAssemblies);
+
+ var result = resolver.TryResolveAssemblyPaths(library, null);
+
+ Assert.True(result);
+ }
+
+ [Fact]
public void RequiresExistingRefsFolderForNonProjects()
{
var fileSystem = FileSystemMockBuilder
}
[Fact]
+ public void ResolvesDirectReferenceWithoutRefsFolder()
+ {
+ var fileSystem = FileSystemMockBuilder
+ .Create()
+ .AddFiles(BasePath, TestLibraryFactory.DefaultAssembly, TestLibraryFactory.SecondAssembly)
+ .Build();
+ var library = TestLibraryFactory.Create(
+ TestLibraryFactory.ReferenceType,
+ assemblies: TestLibraryFactory.TwoAssemblies);
+ var resolver = CreateResolver(fileSystem);
+ 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()
{
var fileSystem = FileSystemMockBuilder
public static readonly string ProjectType = "project";
public static readonly string MsBuildProjectType = "msbuildproject";
public static readonly string ReferenceAssemblyType = "referenceassembly";
+ public static readonly string ReferenceType = "reference";
public static readonly string PackageType = "package";
public static CompilationLibrary Create(