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());
            }