public void GetPackagesFindsUpdatesForFilteredSetOfPackages()
{
// Arrange
var packageA = PackageUtility.CreatePackage("Foo", "1.0");
var packageB = PackageUtility.CreatePackage("Qux", "1.0");
var localRepository = new MockPackageRepository { packageA, packageB };
IEnumerable<IPackage> actual = null;
var sourceRepository = new Mock<IServiceBasedRepository>(MockBehavior.Strict);
sourceRepository.Setup(s => s.GetUpdates(It.IsAny<IEnumerable<IPackage>>(), true, false, It.IsAny<IEnumerable<FrameworkName>>()))
.Returns(new[] { PackageUtility.CreatePackage("Foo", "1.1") })
.Callback((IEnumerable<IPackage> a, bool includePrerelease, bool includeAllVersions, IEnumerable<FrameworkName> frameworks) => actual = a)
.Verifiable();
PackagesProviderBase provider = new MockPackagesProvider(new string[] { ".NETFramework,Version=3.0" });
IVsExtensionsTreeNode parentTreeNode = new Mock<IVsExtensionsTreeNode>().Object;
var node = new UpdatesTreeNode(provider, "Mock", parentTreeNode, localRepository, sourceRepository.As<IPackageRepository>().Object);
// Act
var result = node.GetPackages(searchTerm: "Foo", allowPrereleaseVersions: true).ToList();
// Assert
sourceRepository.Verify();
Assert.Equal(new[] { packageA }, actual);
AssertPackage(result.Single(), "Foo", "1.1");
}