vsphere-influxdb-go/vendor/github.com/influxdata/influxdb/monitor/config_test.go

53 lines
1.2 KiB
Go

package monitor_test
import (
"testing"
"time"
"github.com/BurntSushi/toml"
"github.com/influxdata/influxdb/monitor"
)
func TestConfig_Parse(t *testing.T) {
// Parse configuration.
var c monitor.Config
if _, err := toml.Decode(`
store-enabled=true
store-database="the_db"
store-interval="10m"
`, &c); err != nil {
t.Fatal(err)
}
// Validate configuration.
if !c.StoreEnabled {
t.Fatalf("unexpected store-enabled: %v", c.StoreEnabled)
} else if c.StoreDatabase != "the_db" {
t.Fatalf("unexpected store-database: %s", c.StoreDatabase)
} else if time.Duration(c.StoreInterval) != 10*time.Minute {
t.Fatalf("unexpected store-interval: %s", c.StoreInterval)
}
}
func TestConfig_Validate(t *testing.T) {
// NewConfig must validate correctly.
c := monitor.NewConfig()
if err := c.Validate(); err != nil {
t.Fatalf("unexpected validation error: %s", err)
}
// Non-positive duration is invalid.
c = monitor.NewConfig()
c.StoreInterval *= 0
if err := c.Validate(); err == nil {
t.Fatalf("unexpected successful validation for %#v", c)
}
// Empty database is invalid.
c = monitor.NewConfig()
c.StoreDatabase = ""
if err := c.Validate(); err == nil {
t.Fatalf("unexpected successful validation for %#v", c)
}
}