// When invoked with and unknown command it should not launch the GUI. public async Task InvokedWithUnknownCommandAsync() { var ms = new MemoryStream(); var output = new StreamWriter(ms, Encoding.ASCII, 1024, true); CommandInterpreter.Configure(CreateMixCommand(), CreateFindPasswordCommand(), output, output); // unknown command var runGui = await CommandInterpreter.ExecuteCommandsAsync(new[] { "unknowncommand" }); output.Flush(); var consoleOutput = Encoding.ASCII.GetString(ms.ToArray()); Assert.Contains("Unknown command:", consoleOutput); Assert.False(runGui); ms = new MemoryStream(); output = new StreamWriter(ms, Encoding.ASCII, 1024, true); // Unknown option CommandInterpreter.Configure(CreateMixCommand(), CreateFindPasswordCommand(), output, output); runGui = await CommandInterpreter.ExecuteCommandsAsync(new[] { "--unknownoption" }); output.Flush(); consoleOutput = Encoding.ASCII.GetString(ms.ToArray()); Assert.Contains("Unknown command:", consoleOutput); Assert.False(runGui); }
// When invoked with "--datadir" only it should set the DataDir and launch the GUI public async Task InvokedWithDataDirAsync() { var ms = new MemoryStream(); var output = new StreamWriter(ms, Encoding.ASCII, 1024, true); CommandInterpreter.Configure(CreateMixCommand(), CreateFindPasswordCommand(), output, output); var runGui = await CommandInterpreter.ExecuteCommandsAsync(new[] { "--datadir", "expected/passed/datadir" }); output.Flush(); Assert.Equal("expected/passed/datadir", WalletWasabi.Gui.Global.DataDir); Assert.True(runGui); }
// When invoked with "--version" it should NOT in GUI mode public async Task InvokedWithVersionAsync() { var ms = new MemoryStream(); var output = new StreamWriter(ms, Encoding.ASCII, 1024, true); CommandInterpreter.Configure(CreateMixCommand(), CreateFindPasswordCommand(), output, output); var runGui = await CommandInterpreter.ExecuteCommandsAsync(new[] { "--version" }); output.Flush(); var consoleOutput = Encoding.ASCII.GetString(ms.ToArray()); Assert.Contains("Wasabi Client Version:", consoleOutput); Assert.False(runGui); }
// When invoked with "findpassword" it should NOT launch the GUI public async Task InvokedWithPasswordFinderAsync() { var ms = new MemoryStream(); var output = new StreamWriter(ms, Encoding.ASCII, 1024, true); var invoked = false; var findPasswordCommand = CreateFindPasswordCommand(); findPasswordCommand.Run = (s) => invoked = true; CommandInterpreter.Configure(CreateMixCommand(), findPasswordCommand, output, output); var runGui = await CommandInterpreter.ExecuteCommandsAsync(new[] { "findpassword" }); Assert.True(invoked); Assert.False(runGui); }
// When invoked with "--datadir" only it should set the DataDir and launch the GUI public async Task InvokedWithMixAsync() { var ms = new MemoryStream(); var output = new StreamWriter(ms, Encoding.ASCII, 1024, true); var invoked = false; var mixCommand = CreateMixCommand(); mixCommand.Run = (s) => invoked = true; CommandInterpreter.Configure(mixCommand, CreateFindPasswordCommand(), output, output); var runGui = await CommandInterpreter.ExecuteCommandsAsync(new[] { "mix" }); Assert.True(invoked); Assert.False(runGui); // Ensure backward compatibility with --mix mixCommand = CreateMixCommand(); mixCommand.Run = (s) => invoked = true; CommandInterpreter.Configure(mixCommand, CreateFindPasswordCommand(), output, output); invoked = false; runGui = await CommandInterpreter.ExecuteCommandsAsync(new[] { "--mix" }); Assert.True(invoked); Assert.False(runGui); }