public void Should_Return_Compatible_References() { // TODO: this is a pretty bad test -- some refactoring of the SUT implementation should simplify this // Given var targetFramework = new FrameworkName(".NETFramework,Version=v4.0"); var compatibleAssemblies = new FilePath[] { "lib/net40/compatible1.dll", "lib/net40/compatible2.dll", "compatible3.dll" }; var allAssemblies = compatibleAssemblies.Concat(new FilePath[] { "lib/net452/incompatible1.dll", "lib/net452/incompatible2.dll" }).ToArray(); var compatibilityFilter = Substitute.For <INuGetFrameworkCompatibilityFilter>(); compatibilityFilter.GetCompatibleItems(targetFramework, Arg.Any <IEnumerable <PackageReferenceSet> >()) .Returns(args => new[] { new PackageReferenceSet(args.Arg <FrameworkName>(), compatibleAssemblies) }); var referenceSetFactory = Substitute.For <IPackageReferenceBundler>(); var filter = new NuGetAssemblyCompatibilityFilter(compatibilityFilter, referenceSetFactory); // When var result = filter.FilterCompatibleAssemblies(targetFramework, allAssemblies); // Then Assert.Equal(compatibleAssemblies.Select(ca => ca.FullPath).ToArray(), result.Select(ca => ca.FullPath).ToArray()); }