public void ShouldLogMessageIfNoMatch() { SetupJsonLoader(@"project\myFolder\config.json", "{packages:[{\"locator\":\"id\"}]}"); SetupProviderMatcher(); var messageLogger = new StubConsoleWriter(); var testSubject = new PackagesRestorer(_jsonLoader, _providerMatcher, messageLogger, new SaucySettings()); testSubject.Restore(@"project\myFolder\config.json"); messageLogger.AssertWrittenMessages( @"Restoring packages from project\myFolder\config.json", "Package locator does not match any provider: {\"locator\":\"id\"}"); }
public void ShouldAttemptToGetMatchingProviderForEachPackage() { SetupJsonLoader(@"myFolder\config.json", "{packages:[{package:\"myPackageA\"},{package:\"myPackageB\"}]}"); SetupProviderMatcher(); var packageLocatorA = (JObject)_saucyConfig["packages"][0]; var packageLocatorB = (JObject)_saucyConfig["packages"][1]; var testSubject = new PackagesRestorer(_jsonLoader, _providerMatcher, A.Fake <IWriteToConsole>(), new SaucySettings()); testSubject.Restore(@"myFolder\config.json"); Assert.That(_providerMatcher.MatchPackageLocatorsArgs.ToArray(), Is.EqualTo(new[] { packageLocatorA, packageLocatorB })); }
public void ShouldLogMessageIfMatcherThrowsAmbiguousPackageLocatorException() { SetupJsonLoader(@"project\myFolder\config.json", "{packages:[{\"locator\":\"id\"}]}"); var messageLogger = new StubConsoleWriter(); var myProviderMatcher = A.Fake <IMatchProvider>(); A.CallTo(() => myProviderMatcher.Match(A <JObject> ._)).Throws(new AmbiguousPackageLocatorException(new JObject())); var testSubject = new PackagesRestorer(_jsonLoader, myProviderMatcher, messageLogger, new SaucySettings()); testSubject.Restore(@"project\myFolder\config.json"); messageLogger.AssertWrittenMessages( @"Restoring packages from project\myFolder\config.json", "Package locator matches multiple providers: {\"locator\":\"id\"}"); }
public void ShouldCallProviderPullForEachPackage() { var providerA = A.Fake <IProvider>(); var providerB = A.Fake <IProvider>(); SetupJsonLoader(@"project\myFolder\config.json", "{packages:[{package:\"myPackageA\"},{package:\"myPackageB\"}]}"); SetupProviderMatcher(providerA, providerB); var packageLocatorA = (JObject)_saucyConfig["packages"][0]; var packageLocatorB = (JObject)_saucyConfig["packages"][1]; var testSubject = new PackagesRestorer(_jsonLoader, _providerMatcher, A.Fake <IWriteToConsole>(), new SaucySettings { PackagesFolder = "packagesFolder" }); testSubject.Restore(@"project\myFolder\config.json"); A.CallTo(() => providerA.Pull(packageLocatorA, @"project\myFolder\packagesFolder")).MustHaveHappened(Repeated.Exactly.Once); A.CallTo(() => providerB.Pull(packageLocatorB, @"project\myFolder\packagesFolder")).MustHaveHappened(Repeated.Exactly.Once); }