Exemplo n.º 1
0
        public async Task be_healthy_when_connection_to_sftp_is_successful_using_private_key()
        {
            string privateKey = File.ReadAllText("id_rsa");

            var webHostBuilder = new WebHostBuilder()
                                 .ConfigureServices(services =>
            {
                services.AddHealthChecks()
                .AddSftpHealthCheck(setup =>
                {
                    var cfg = new SftpConfigurationBuilder("localhost", 22, "foo")
                              .AddPrivateKeyAuthentication(privateKey, "beatpulse")
                              .Build();

                    setup.AddHost(cfg);
                }, tags: new string[] { "sftp" });
            })
                                 .Configure(app =>
            {
                app.UseHealthChecks("/health", new HealthCheckOptions()
                {
                    Predicate = r => r.Tags.Contains("sftp")
                });
            });

            using var server = new TestServer(webHostBuilder);

            var response = await server.CreateRequest("/health")
                           .GetAsync();

            response.EnsureSuccessStatusCode();
        }
Exemplo n.º 2
0
        public async Task be_unhealthy_when_connection_to_sftp_is_using_wrong_password()
        {
            var webHostBuilder = new WebHostBuilder()
                                 .ConfigureServices(services =>
            {
                services.AddHealthChecks()
                .AddSftpHealthCheck(setup =>
                {
                    var cfg = new SftpConfigurationBuilder("localhost", 22, "foo")
                              .AddPasswordAuthentication("wrongpass")
                              .Build();

                    setup.AddHost(cfg);
                }, tags: new string[] { "sftp" });
            })
                                 .Configure(app =>
            {
                app.UseHealthChecks("/health", new HealthCheckOptions()
                {
                    Predicate = r => r.Tags.Contains("sftp")
                });
            });

            using var server = new TestServer(webHostBuilder);

            var response = await server.CreateRequest("/health")
                           .GetAsync();

            response.StatusCode.Should().Be(HttpStatusCode.ServiceUnavailable);
        }
Exemplo n.º 3
0
        public async Task be_healthy_when_connection_to_sftp_is_successful_using_password_authentication()
        {
            var webHostBuilder = new WebHostBuilder()
                                 .ConfigureServices(services =>
            {
                services.AddHealthChecks()
                .AddSftpHealthCheck(setup =>
                {
                    var cfg = new SftpConfigurationBuilder("localhost", 22, "foo")
                              .AddPasswordAuthentication("pass")
                              .Build();

                    setup.AddHost(cfg);
                }, tags: new string[] { "sftp" }, timeout: TimeSpan.FromSeconds(5));
            })
                                 .Configure(app =>
            {
                app.UseHealthChecks("/health", new HealthCheckOptions()
                {
                    Predicate = r => r.Tags.Contains("sftp")
                });
            });

            using var server = new TestServer(webHostBuilder);

            var response = await server.CreateRequest("/health")
                           .GetAsync();

            response.EnsureSuccessStatusCode();
        }
Exemplo n.º 4
0
        public async Task be_healthy_when_connection_to_sftp_is_successful_using_private_key()
        {
            string privateKey = File.ReadAllText("id_rsa");

            var webHostBuilder = new WebHostBuilder()
                                 .UseStartup <DefaultStartup>()
                                 .UseBeatPulse()
                                 .ConfigureServices(services =>
            {
                services.AddBeatPulse(setup =>
                {
                    setup.AddSftpLiveness(options =>
                    {
                        var sftpConfiguration = new SftpConfigurationBuilder("localhost", 22, "foo")
                                                .AddPrivateKeyAuthentication(privateKey, "beatpulse")
                                                .Build();


                        options.AddHost(sftpConfiguration);
                    });
                });
            });

            var server = new TestServer(webHostBuilder);

            var response = await server.CreateRequest(BeatPulseKeys.BEATPULSE_DEFAULT_PATH)
                           .GetAsync();

            response.EnsureSuccessStatusCode();
        }
Exemplo n.º 5
0
        public async Task be_unhealthy_when_connection_to_sftp_is_using_wrong_password()
        {
            var webHostBuilder = new WebHostBuilder()
                                 .UseStartup <DefaultStartup>()
                                 .UseBeatPulse()
                                 .ConfigureServices(services =>
            {
                services.AddBeatPulse(setup =>
                {
                    setup.AddSftpLiveness(options =>
                    {
                        var sftpConfiguration = new SftpConfigurationBuilder("localhost", 22, "foo")
                                                .AddPasswordAuthentication("wrongpass")
                                                .Build();

                        options.AddHost(sftpConfiguration);
                    });
                });
            });

            var server = new TestServer(webHostBuilder);

            var response = await server.CreateRequest(BeatPulseKeys.BEATPULSE_DEFAULT_PATH)
                           .GetAsync();

            response.StatusCode.Should().Be(HttpStatusCode.ServiceUnavailable);
        }
        public async Task be_healthy_with_one_valid_authorization()
        {
            string privateKey = File.ReadAllText("id_rsa");

            var webHostBuilder = new WebHostBuilder()
                                 .UseStartup <DefaultStartup>()
                                 .ConfigureServices(services =>
            {
                services.AddHealthChecks()
                .AddSftpHealthCheck(setup =>
                {
                    var cfg = new SftpConfigurationBuilder("localhost", 22, "foo")
                              .AddPasswordAuthentication("wrongpass")
                              .AddPrivateKeyAuthentication(privateKey, "beatpulse")
                              .Build();

                    setup.AddHost(cfg);
                }, tags: new string[] { "sftp" });
            })
                                 .Configure(app =>
            {
                app.UseHealthChecks("/health", new HealthCheckOptions()
                {
                    Predicate = r => r.Tags.Contains("sftp")
                });
            });


            var server = new TestServer(webHostBuilder);

            var response = await server.CreateRequest("/health")
                           .GetAsync();

            response.EnsureSuccessStatusCode();
        }