public void SkipsNonReferenceAssembly() { var resolver = new ReferenceAssemblyPathResolver(); var library = F.Create( F.PackageType); var result = resolver.TryResolveAssemblyPaths(library, null); result.Should().BeFalse(); }
public void SkipsNonPackage() { var resolver = new PackageCacheCompilationAssemblyResolver(); var library = F.Create( F.PackageType, assemblies: F.EmptyAssemblies); var result = resolver.TryResolveAssemblyPaths(library, null); result.Should().BeFalse(); }
public void FailsOnInvalidHash(string hash) { var resolver = new PackageCacheCompilationAssemblyResolver(FileSystemMockBuilder.Empty, CachePath); var library = F.Create(hash: hash); var exception = Assert.Throws <InvalidOperationException>(() => resolver.TryResolveAssemblyPaths(library, null)); exception.Message.Should() .Contain(library.Hash) .And.Contain(library.Name); }
public void ChecksForFileNameInFallbackLocation() { var fileSystem = FileSystemMockBuilder.Create() .AddFiles(ReferencePath, F.DefaultAssembly) .Build(); var library = F.Create(libraryType: F.ReferenceAssemblyType); var assemblies = new List <string>(); var resolver = new ReferenceAssemblyPathResolver(fileSystem, null, new string[] { ReferencePath }); var result = resolver.TryResolveAssemblyPaths(library, assemblies); result.Should().BeTrue(); assemblies.Should().Contain(Path.Combine(ReferencePath, F.DefaultAssembly)); }
public void FailsWhenOneOfAssembliesNotFound() { var packagePath = GetPackagesPath(F.DefaultPackageName, F.DefaultVersion); var fileSystem = FileSystemMockBuilder.Create() .AddFiles(packagePath, F.DefaultAssemblyPath) .Build(); var library = F.Create(assemblies: F.TwoAssemblies); var resolver = new PackageCompilationAssemblyResolver(fileSystem, new string[] { PackagesPath }); var assemblies = new List <string>(); resolver.TryResolveAssemblyPaths(library, assemblies) .Should().BeFalse(); assemblies.Should().BeEmpty(); }
public void ShouldResolveAll() { var fileSystem = FileSystemMockBuilder.Create() .AddFiles(ReferencePath, F.DefaultAssembly) .Build(); var library = F.Create(libraryType: F.ReferenceAssemblyType, assemblies: F.TwoAssemblies); var assemblies = new List <string>(); var resolver = new ReferenceAssemblyPathResolver(fileSystem, null, new string[] { ReferencePath }); var exception = Assert.Throws <InvalidOperationException>(() => resolver.TryResolveAssemblyPaths(library, assemblies)); exception.Message.Should() .Contain(F.SecondAssemblyPath) .And.Contain(library.Name); }
public void FailsWhenOneOfAssembliesNotFound() { var packagePath = Path.Combine(PackagesPath, F.DefaultPackageName, F.DefaultVersion); var fileSystem = FileSystemMockBuilder.Create() .AddFiles(packagePath, F.DefaultAssemblyPath) .Build(); var library = F.Create(assemblies: F.TwoAssemblies); var resolver = new PackageCompilationAssemblyResolver(fileSystem, PackagesPath); var assemblies = new List <string>(); var exception = Assert.Throws <InvalidOperationException>(() => resolver.TryResolveAssemblyPaths(library, assemblies)); exception.Message.Should() .Contain(F.SecondAssemblyPath) .And.Contain(library.Name); }
public void ResolvesAllAssemblies() { var packagePath = Path.Combine(PackagesPath, F.DefaultPackageName, F.DefaultVersion); var fileSystem = FileSystemMockBuilder.Create() .AddFiles(packagePath, F.TwoAssemblies) .Build(); var library = F.Create(assemblies: F.TwoAssemblies); var resolver = new PackageCompilationAssemblyResolver(fileSystem, PackagesPath); var assemblies = new List <string>(); var result = resolver.TryResolveAssemblyPaths(library, assemblies); assemblies.Should().HaveCount(2); assemblies.Should().Contain(Path.Combine(packagePath, F.DefaultAssemblyPath)); assemblies.Should().Contain(Path.Combine(packagePath, F.SecondAssemblyPath)); }
public void ChecksHashFile() { var packagePath = GetPackagesPath(F.DefaultPackageName, F.DefaultVersion); var fileSystem = FileSystemMockBuilder.Create() .AddFile( GetHashFilePath(packagePath), "WRONGHASH" ) .AddFiles(packagePath, F.DefaultAssemblies) .Build(); var resolver = new PackageCacheCompilationAssemblyResolver(fileSystem, CachePath); var assemblies = new List <string>(); var result = resolver.TryResolveAssemblyPaths(F.Create(), assemblies); result.Should().BeFalse(); }
public void ChecksHashFile() { var packagePath = Path.Combine(CachePath, F.DefaultPackageName, F.DefaultVersion); var fileSystem = FileSystemMockBuilder.Create() .AddFile( Path.Combine(packagePath, $"{F.DefaultPackageName}.{F.DefaultVersion}.nupkg.{F.DefaultHashAlgoritm}"), "WRONGHASH" ) .AddFiles(packagePath, F.DefaultAssemblies) .Build(); var resolver = new PackageCacheCompilationAssemblyResolver(fileSystem, CachePath); var assemblies = new List <string>(); var result = resolver.TryResolveAssemblyPaths(F.Create(), assemblies); result.Should().BeFalse(); }
public void KeepsLookingWhenOneOfAssembliesNotFound() { var packagePath1 = GetPackagesPath(F.DefaultPackageName, F.DefaultVersion); var secondPath = "secondPath"; var packagePath2 = GetPackagesPath(secondPath, F.DefaultPackageName, F.DefaultVersion); var fileSystem = FileSystemMockBuilder.Create() .AddFiles(packagePath1, F.DefaultAssemblyPath) .AddFiles(packagePath2, F.DefaultAssemblyPath, F.SecondAssemblyPath) .Build(); var library = F.Create(assemblies: F.TwoAssemblies); var resolver = new PackageCompilationAssemblyResolver(fileSystem, new string[] { PackagesPath, secondPath }); var assemblies = new List <string>(); resolver.TryResolveAssemblyPaths(library, assemblies) .Should().BeTrue(); assemblies.Should().HaveCount(2); assemblies.Should().Contain(Path.Combine(packagePath2, F.DefaultAssemblyPath)); assemblies.Should().Contain(Path.Combine(packagePath2, F.SecondAssemblyPath)); }
public void UsesPathProperty() { var testPathValue = "NotPackageId"; var packagePath = Path.Combine(CachePath, testPathValue); var fileSystem = FileSystemMockBuilder.Create() .AddFile( GetHashFilePath(packagePath), F.DefaultHashValue ) .AddFiles(packagePath, F.TwoAssemblies) .Build(); var library = F.Create(assemblies: F.TwoAssemblies, path: testPathValue); var resolver = new PackageCacheCompilationAssemblyResolver(fileSystem, CachePath); var assemblies = new List <string>(); var result = resolver.TryResolveAssemblyPaths(library, assemblies); result.Should().BeTrue(); assemblies.Should().HaveCount(2); assemblies.Should().Contain(Path.Combine(packagePath, F.DefaultAssemblyPath)); assemblies.Should().Contain(Path.Combine(packagePath, F.SecondAssemblyPath)); }
public void UsesHashPathProperty() { var hashFileName = "myFunkyHashPath.sha29"; var packagePath = GetPackagesPath(F.DefaultPackageName, F.DefaultVersion); var fileSystem = FileSystemMockBuilder.Create() .AddFile( Path.Combine(packagePath, hashFileName), F.DefaultHashValue ) .AddFiles(packagePath, F.TwoAssemblies) .Build(); var library = F.Create(assemblies: F.TwoAssemblies, hashPath: hashFileName); var resolver = new PackageCacheCompilationAssemblyResolver(fileSystem, CachePath); var assemblies = new List <string>(); var result = resolver.TryResolveAssemblyPaths(library, assemblies); result.Should().BeTrue(); assemblies.Should().HaveCount(2); assemblies.Should().Contain(Path.Combine(packagePath, F.DefaultAssemblyPath)); assemblies.Should().Contain(Path.Combine(packagePath, F.SecondAssemblyPath)); }