public async Task StopTunnel_StopTunnelNameIsNullArgumentNullException_True() { // ARRANGE if (!Directory.Exists(_downloadFolder)) { Directory.CreateDirectory(_downloadFolder); } File.WriteAllBytes($"{_downloadFolder}ngrok-stable-amd64.zip", _ngrokBytes); var fastZip = new FastZip(); fastZip.ExtractZip($"{_downloadFolder}ngrok-stable-amd64.zip", _downloadFolder, null); SetNgrokYml(); var ngrokManager = new NgrokManager(); ngrokManager.StartNgrok(); //Wait for ngrok to start, it can be slow on some systems. Thread.Sleep(1000); var startTunnelDto = new StartTunnelDTO { name = "foundryvtt", proto = "http", addr = "30000", bind_tls = "false" }; await ngrokManager.StartTunnelAsync(startTunnelDto); // ACT var ex = await Assert.ThrowsAsync <ArgumentException>(async() => await ngrokManager.StopTunnelAsync("")); // ASSERT Assert.Equal("Value cannot be null or whitespace. (Parameter 'name')", ex.Message); }
public async Task StartTunnel_WithCustomDomain_True() { // ARRANGE if (!Directory.Exists(_downloadFolder)) { Directory.CreateDirectory(_downloadFolder); } File.WriteAllBytes($"{_downloadFolder}ngrok-stable-amd64.zip", _ngrokBytes); var fastZip = new FastZip(); fastZip.ExtractZip($"{_downloadFolder}ngrok-stable-amd64.zip", _downloadFolder, null); SetNgrokYml(); var ngrokManager = new NgrokManager(); // ACT ngrokManager.StartNgrok(); //Wait for ngrok to start, it can be slow on some systems. Thread.Sleep(1000); var startTunnelDto = new StartTunnelDTO { name = "foundryvtt", proto = "http", addr = "30000", bind_tls = "false", hostname = "ngroksharp.davidjensen.dev" }; await ngrokManager.StartTunnelAsync(startTunnelDto); // ASSERT var downloadedString = await HttpClient.GetStringAsync("http://localhost:4040/api/tunnels/foundryvtt"); Assert.Contains("ngroksharp.davidjensen.dev", downloadedString); }
public async Task StartNgrokWithLogging_StartTunnel8080AndCheckLog_True() { // ARRANGE var are = new AutoResetEvent(false); if (!Directory.Exists(_downloadFolder)) { Directory.CreateDirectory(_downloadFolder); } var loggerFactory = LoggerFactory.Create(builder => { builder.AddFile("app.log"); } ); _logger = loggerFactory.CreateLogger <NgrokManagerUnitTest>(); File.WriteAllBytes($"{_downloadFolder}ngrok-stable-amd64.zip", _ngrokBytes); var fastZip = new FastZip(); fastZip.ExtractZip($"{_downloadFolder}ngrok-stable-amd64.zip", _downloadFolder, null); SetNgrokYml(); var ngrokManager = new NgrokManager(_logger); ngrokManager.StartNgrokWithLogging(); //Wait for ngrok to start, it can be slow on some systems. await Task.Delay(1000); var startTunnelDto = new StartTunnelDTO { name = "foundryvtt", proto = "http", addr = "30000", bind_tls = "false" }; await ngrokManager.StartTunnelAsync(startTunnelDto); //Wait for ngrok to start, it can be slow on some systems. await Task.Delay(1000); string log; using (var fileStream = File.Open("app.log", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { using (var streamReader = new StreamReader(fileStream, Encoding.Default)) { log = streamReader.ReadToEnd(); } } // ACT are.WaitOne(TimeSpan.FromSeconds(4)); // ASSERT Assert.Contains("client session established", log); }
public async Task StartTunnel_StartTunnelDTOIsNullArgumentNullException_True() { // ARRANGE if (!Directory.Exists(_downloadFolder)) { Directory.CreateDirectory(_downloadFolder); } File.WriteAllBytes($"{_downloadFolder}ngrok-stable-amd64.zip", _ngrokBytes); var fastZip = new FastZip(); fastZip.ExtractZip($"{_downloadFolder}ngrok-stable-amd64.zip", _downloadFolder, null); SetNgrokYml(); var ngrokManager = new NgrokManager(); // ACT ngrokManager.StartNgrok(); //Wait for ngrok to start, it can be slow on some systems. Thread.Sleep(1000); var ex = await Assert.ThrowsAsync <ArgumentNullException>(async() => await ngrokManager.StartTunnelAsync(null)); // ASSERT Assert.Equal("Value cannot be null. (Parameter 'startTunnelDto')", ex.Message); }