private static IPackageRepositoryFactory GetFactory() { var repositoryA = new MockPackageRepository { PackageUtility.CreatePackage("Foo"), PackageUtility.CreatePackage("Baz", "0.4"), PackageUtility.CreatePackage("Baz", "0.7") }; var dependencySets1 = new[] { new PackageDependencySet(null, new[] { new PackageDependency("ChildPackage", new VersionSpec { MinVersion = new SemanticVersion("1.0"), MaxVersion = new SemanticVersion("2.0"), IsMinInclusive = true }) }) }; var dependencySets2 = new[] { new PackageDependencySet(null, new[] { new PackageDependency("ChildPackage", new VersionSpec { MinVersion = new SemanticVersion("2.0"), MaxVersion = new SemanticVersion("5.0"), IsMinInclusive = false }) }) }; var repositoryB = new MockPackageRepository { PackageUtility.CreatePackage("Bar", "0.5"), PackageUtility.CreatePackage("Baz", "0.8.1-alpha"), PackageUtility.CreatePackageWithDependencySets("PackageWithDependencies", "1.0", dependencySets: dependencySets1), PackageUtility.CreatePackageWithDependencySets("PackageWithDependencies", "2.0", dependencySets: dependencySets2), PackageUtility.CreatePackage("ChildPackage", "1.4"), PackageUtility.CreatePackage("ChildPackage", "3.0") }; var factory = new Mock <IPackageRepositoryFactory>(); factory.Setup(c => c.CreateRepository(It.Is <string>(f => f.Equals("Some source")))).Returns(repositoryA); factory.Setup(c => c.CreateRepository(It.Is <string>(f => f.Equals("Some other source")))).Returns(repositoryB); return(factory.Object); }