mirror of
https://github.com/Oxalide/vsphere-influxdb-go.git
synced 2023-10-10 13:36:51 +02:00
53 lines
1.2 KiB
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)
|
||
|
}
|
||
|
}
|