mirror of
https://github.com/Oxalide/vsphere-influxdb-go.git
synced 2023-10-10 13:36:51 +02:00
112 lines
2.8 KiB
Go
112 lines
2.8 KiB
Go
|
package subscriber_test
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"io/ioutil"
|
||
|
"os"
|
||
|
"path/filepath"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/BurntSushi/toml"
|
||
|
"github.com/influxdata/influxdb/services/subscriber"
|
||
|
)
|
||
|
|
||
|
func TestConfig_Parse(t *testing.T) {
|
||
|
// Parse configuration.
|
||
|
var c subscriber.Config
|
||
|
if _, err := toml.Decode(`
|
||
|
enabled = false
|
||
|
`, &c); err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
|
||
|
// Validate configuration.
|
||
|
if c.Enabled != false {
|
||
|
t.Errorf("unexpected enabled state: %v", c.Enabled)
|
||
|
}
|
||
|
if c.InsecureSkipVerify == true {
|
||
|
t.Errorf("InsecureSkipVerify: expected %v. got %v", false, c.InsecureSkipVerify)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestConfig_ParseTLSConfig(t *testing.T) {
|
||
|
abspath, err := filepath.Abs("/path/to/ca-certs.pem")
|
||
|
if err != nil {
|
||
|
t.Fatalf("Could not construct absolute path. %v", err)
|
||
|
}
|
||
|
|
||
|
// Parse configuration.
|
||
|
var c subscriber.Config
|
||
|
if _, err := toml.Decode(fmt.Sprintf(`
|
||
|
http-timeout = "60s"
|
||
|
enabled = true
|
||
|
ca-certs = '%s'
|
||
|
insecure-skip-verify = true
|
||
|
write-buffer-size = 1000
|
||
|
write-concurrency = 10
|
||
|
`, abspath), &c); err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
|
||
|
// Validate configuration.
|
||
|
if c.Enabled != true {
|
||
|
t.Errorf("unexpected enabled state: %v", c.Enabled)
|
||
|
}
|
||
|
if c.CaCerts != abspath {
|
||
|
t.Errorf("CaCerts: expected %s. got %s", abspath, c.CaCerts)
|
||
|
}
|
||
|
if c.InsecureSkipVerify != true {
|
||
|
t.Errorf("InsecureSkipVerify: expected %v. got %v", true, c.InsecureSkipVerify)
|
||
|
}
|
||
|
err = c.Validate()
|
||
|
if err == nil {
|
||
|
t.Errorf("Expected Validation to fail (%s doesn't exist)", abspath)
|
||
|
}
|
||
|
|
||
|
if err.Error() != fmt.Sprintf("ca-certs file %s does not exist", abspath) {
|
||
|
t.Errorf("Expected descriptive validation error. Instead got %v", err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestConfig_ParseTLSConfigValidCerts(t *testing.T) {
|
||
|
tmpfile, err := ioutil.TempFile("", "ca-certs.crt")
|
||
|
if err != nil {
|
||
|
t.Fatalf("could not create temp file. error was: %v", err)
|
||
|
}
|
||
|
defer os.Remove(tmpfile.Name())
|
||
|
|
||
|
if _, err := tmpfile.Write([]byte("=== BEGIN CERTIFICATE ===\n=== END CERTIFICATE ===")); err != nil {
|
||
|
t.Fatalf("could not write temp file. error was: %v", err)
|
||
|
}
|
||
|
if err := tmpfile.Close(); err != nil {
|
||
|
t.Fatalf("could not close temp file. error was %v", err)
|
||
|
}
|
||
|
|
||
|
// Parse configuration.
|
||
|
var c subscriber.Config
|
||
|
if _, err := toml.Decode(fmt.Sprintf(`
|
||
|
http-timeout = "60s"
|
||
|
enabled = true
|
||
|
ca-certs = '%s'
|
||
|
insecure-skip-verify = false
|
||
|
write-buffer-size = 1000
|
||
|
write-concurrency = 10
|
||
|
`, tmpfile.Name()), &c); err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
|
||
|
// Validate configuration.
|
||
|
if c.Enabled != true {
|
||
|
t.Errorf("unexpected enabled state: %v", c.Enabled)
|
||
|
}
|
||
|
if c.CaCerts != tmpfile.Name() {
|
||
|
t.Errorf("CaCerts: expected %v. got %v", tmpfile.Name(), c.CaCerts)
|
||
|
}
|
||
|
if c.InsecureSkipVerify != false {
|
||
|
t.Errorf("InsecureSkipVerify: expected %v. got %v", false, c.InsecureSkipVerify)
|
||
|
}
|
||
|
if err := c.Validate(); err != nil {
|
||
|
t.Errorf("Expected Validation to succeed. Instead was: %v", err)
|
||
|
}
|
||
|
}
|