Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }