public void TestExtractWithZipArchiveFallback() { var file = Helper.Fixtrue("archive/sample.zip"); process.Setup("unzip", returnValue: () => 0) .Verifiable(); process.Setup((o) => o.Execute( It.IsRegex(@"^unzip\s-qq"), out It.Ref <string[]> .IsAny, out It.Ref <string[]> .IsAny, It.IsAny <string>())) .Returns(0) .Verifiable(); fileSystem.Setup((o) => o.Read(file)) .Throws <UnexpectedException>(); extractor.Object.ExtractWithZipArchive(file, "/path"); Moq.Mock.Verify(fileSystem, process); StringAssert.Contains( tester.GetDisplay(), "Unzip with ZipArchive failed, falling back to unzip command"); }
public void TestShowsAppropriateMessage() { var initialMock = new Mock <IPackage>(); initialMock.Setup((o) => o.GetVersion()).Returns("1.2.0.0"); initialMock.Setup((o) => o.GetVersionPrettyFull(true)).Returns("1.2.0"); var targetMock = new Mock <IPackage>(); var distUri = "https://example.com/foo/bar.zip"; targetMock.Setup((o) => o.GetName()).Returns("foo/bar"); targetMock.Setup((o) => o.GetVersion()).Returns("1.6.0.0"); targetMock.Setup((o) => o.GetVersionPrettyFull(true)).Returns("1.6.0"); targetMock.Setup((o) => o.GetDistUri()).Returns(distUri); targetMock.Setup((o) => o.GetDistUris()).Returns(new[] { distUri }); var downloadedFilePath = downloader.GetDownloadedFilePath(targetMock.Object, "/path"); fileSystem.Setup((o) => o.Delete("/path")) .Verifiable(); fileSystem.Setup((o) => o.Move(It.IsIn(downloadedFilePath), It.IsIn(Path.Combine("/path", "bar.zip")))) .Verifiable(); downloader.Update(initialMock.Object, targetMock.Object, "/path"); Moq.Mock.VerifyAll(fileSystem); StringAssert.Contains(tester.GetDisplay(), " - Updating foo/bar (1.2.0 => 1.6.0):"); }
public void TestInstall() { var packageMock = new Mock <IPackage>(); packageMock.Setup((o) => o.ToString()) .Returns("foo/bar-1.2.0"); packageMock.Setup((o) => o.GetName()) .Returns("foo/bar"); packageMock.Setup((o) => o.GetVersionPrettyFull(true)) .Returns("1.2.0 1234567"); packageMock.Setup((o) => o.GetDistUri()) .Returns("https://example.com/foo/bar.zip"); packageMock.Setup((o) => o.GetDistReference()) .Returns("1234567890123456789012345678901234567890"); fileSystem.SetupSequence((o) => o.GetContents(It.IsAny <string>())) .Returns(new DirectoryContents(new[] { "vendor" }, new[] { ".DS_Store" })) .Returns(new DirectoryContents(new[] { "vendor/srcs" }, new[] { "vendor/SAMPLE.md" })); downloader.Object.Install(packageMock.Object, "/path", true); fileSystem.Verify((o) => o.Delete("/path"), Times.Once); fileSystem.Verify((o) => o.Move(It.IsRegex(@"vendor$"), "/path")); StringAssert.Contains( tester.GetDisplay(), " - Installing foo/bar (1.2.0 1234567): Extracting archive"); }
public void TestDoesntHidePorts() { var tester = new TesterIOConsole(); var process = new BucketProcessExecutor(tester.Mock(AbstractTester.OptionVerbosity(OutputOptions.VerbosityDebug))); process.Execute("echo https://localhost:1234/"); StringAssert.Contains(tester.GetDisplay(), "Executing command (CWD): echo https://localhost:1234/"); }
public void TestHidenSensitive() { var tester = new TesterIOConsole(); var process = new BucketProcessExecutor(tester.Mock(AbstractTester.OptionVerbosity(OutputOptions.VerbosityDebug))); process.Execute("echo https://foo:[email protected]/ && echo http://[email protected] && echo http://abcdef1234567890234578:[email protected]/", out string stdout); StringAssert.Contains(tester.GetDisplay(), "Executing command (CWD): echo https://foo:***@example.org/ && echo http://[email protected] && echo http://***:***@github.com/"); }
public void TestAsk() { var tester = new TesterIOConsole(); tester.SetInputs(new[] { "menghanyu" }); var ioConsole = tester.Mock(); var answer = ioConsole.Ask("What's your name?", "miaomiao"); Assert.AreEqual("menghanyu", (string)answer); Assert.AreEqual("What's your name?", tester.GetDisplay()); }
public void TestProhibitUriAllowNonSecureHttp() { var config = new Mock <Config>(true, null); config.Setup((o) => o.Get(Settings.SecureHttp, ConfigOptions.None)) .Returns(() => false); var tester = new TesterIOConsole(); Guard.That.ProhibitUri(config.Object, "http://github.com/foo/bar", tester.Mock()); StringAssert.Contains(tester.GetDisplay(), "Warning: Accessing github.com over http which is an insecure protocol."); }
public void TestDowngradeShowsMessage() { var oldPackageMock = new Mock <IPackage>(); oldPackageMock.Setup((o) => o.GetSourceReference()) .Returns("ref"); oldPackageMock.Setup((o) => o.GetSourceUris()) .Returns(new[] { "/foo/bar", "https://github.com/bucket/bucket" }); oldPackageMock.Setup((o) => o.GetVersion()) .Returns("1.2.0.0"); oldPackageMock.Setup((o) => o.GetVersionPretty()) .Returns("1.2.0"); var newPackageMock = new Mock <IPackage>(); newPackageMock.Setup((o) => o.GetSourceReference()) .Returns("ref"); newPackageMock.Setup((o) => o.GetSourceUris()) .Returns(new[] { "https://github.com/bucket/bucket" }); newPackageMock.Setup((o) => o.GetVersion()) .Returns("1.0.0.0"); newPackageMock.Setup((o) => o.GetVersionPretty()) .Returns("1.0.0"); var processMock = new Mock <IProcessExecutor>(); processMock.Setup(null, returnValue: () => 0); if (!Directory.Exists(root + "/.git")) { Directory.CreateDirectory(root + "/.git"); } var downloader = CreateDownloaderMock(process: processMock.Object); downloader.Update(oldPackageMock.Object, newPackageMock.Object, root); StringAssert.Contains(tester.GetDisplay(), "Downgrading"); }
public void TestSetHelper() { var tester = new TesterIOConsole(); tester.SetInputs(new[] { "menghanyu" }); var ioConsole = tester.Mock(); ioConsole.SetHelperQuestion(new HelperQuestionDefault()); var answer = ioConsole.Ask("What's your name?", "miaomiao"); Assert.AreEqual("menghanyu", (string)answer); Assert.AreEqual( @" What's your name? [miaomiao]: > ", tester.GetDisplay()); }
public void TestActivatePackage(ConfigBucket bucket) { var package = new LoaderPackage().Load(bucket); pluginManager.ActivatePackages(package); Assert.AreEqual(2, pluginManager.GetPlugins().Length); var display = tester.GetDisplay(); StringAssert.Contains(display, "Activate foo"); StringAssert.Contains(display, "Activate bar"); dispatcher.Dispatch("foo", this, null); dispatcher.Dispatch("bar", this, null); display = tester.GetDisplay(); StringAssert.Contains(display, "Trigger foo event"); StringAssert.Contains(display, "Trigger bar event"); }
public void TestTesterIOConsoleMock() { var tester = new TesterIOConsole(); tester.SetInputs(new[] { "menghanyu" }); var io = tester.Mock(AbstractTester.OptionStdErrorSeparately(true)); Assert.AreEqual("menghanyu", (string)io.Ask("what's your name?", "miaomiao")); io.Write("hello world"); Assert.AreEqual( @"hello world ", tester.GetDisplay()); io.WriteError("hello world error"); Assert.AreEqual( @"what's your name?hello world error ", tester.GetDisplayError()); }
public void TestInstallAndRollback() { var repositoryInstalled = new Mock <IRepositoryInstalled>(); var package = new Mock <IPackage>(); package.Setup((o) => o.GetName()).Returns("foo"); repositoryInstalled.Setup((o) => o.HasPackage(package.Object)).Returns(true).Verifiable(); pluginManager.Setup((o) => o.ActivatePackages(package.Object, true)).Throws <RuntimeException>().Verifiable(); Assert.ThrowsException <RuntimeException>(() => { installer.Install(repositoryInstalled.Object, package.Object); }); StringAssert.Contains(tester.GetDisplay(), "Plugin installation failed, rolling back."); repositoryInstalled.Verify(); pluginManager.Verify(); }