Skip to content

Commit

Permalink
Only go to the mirror server if there is only mirrored versions of th…
Browse files Browse the repository at this point in the history
…e package.

Previously, this would keep going as long as you had 1 version that was a mirror.
  • Loading branch information
BlythMeister committed Feb 18, 2014
1 parent 420bc84 commit 1a57976
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 1 deletion.
Expand Up @@ -13,6 +13,7 @@ public class MirroringPackageRepositoryTests
{
private IPackage package1;
private IPackage package2;
private IPackage package3;
private Mock<ICache> cache;
private Mock<IPackageLookup> mirror;
private Mock<IPackageLookup> origin;
Expand All @@ -29,6 +30,7 @@ public void SetUp()

package1 = new LucenePackage(_ => null) { Id = "FuTools", Version = new StrictSemanticVersion("1.0"), IsMirrored = true };
package2 = new LucenePackage(_ => null) { Id = "FuTools", Version = new StrictSemanticVersion("2.0") };
package3 = new LucenePackage(_ => null) { Id = "FuTools", Version = new StrictSemanticVersion("3.0") };
}

[Test]
Expand Down Expand Up @@ -76,6 +78,21 @@ public void FindPackagesSkipsOriginOnLocalPackage()
origin.Verify(r => r.FindPackagesById("FuTools"), Times.Never);
}

[Test]
public void FindPackagesSkipsOriginWhenANonMirroredPackageIsPresent()
{
mirror.Setup(r => r.FindPackagesById("FuTools")).Returns(new[] { package1, package2 }).Verifiable();
origin.Setup(r => r.FindPackagesById("FuTools")).Returns(new[] { package3 }).Verifiable();

var result = repo.FindPackagesById("FuTools");

mirror.VerifyAll();

Assert.That(result.ToList(), Is.EqualTo(new[] { package1, package2 }));

origin.Verify(r => r.FindPackagesById("FuTools"), Times.Never);
}

[Test]
public void FindPackagesHandlesOriginException()
{
Expand Down
Expand Up @@ -74,7 +74,7 @@ public override IEnumerable<IPackage> FindPackagesById(string id)
/// <returns></returns>
protected virtual bool ShouldLookInOrigin(string id, List<IPackage> localPackages)
{
return localPackages.IsEmpty() || localPackages.OfType<LucenePackage>().Any(p => p.IsMirrored);
return localPackages.IsEmpty() || localPackages.OfType<LucenePackage>().All(p => p.IsMirrored);
}

public override IPackage FindPackage(string packageId, SemanticVersion version)
Expand Down

0 comments on commit 1a57976

Please sign in to comment.