github.com/wynshop-open-source/gomplate@v3.5.0+incompatible/libkv/boltdb_test.go (about) 1 package libkv 2 3 import ( 4 "net/url" 5 "os" 6 "testing" 7 "time" 8 9 "github.com/docker/libkv/store" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestSetupBoltDB(t *testing.T) { 14 _, err := setupBoltDB("") 15 assert.Error(t, err) 16 17 expectedConfig := &store.Config{Bucket: "foo"} 18 actualConfig, err := setupBoltDB("foo") 19 assert.NoError(t, err) 20 assert.Equal(t, expectedConfig, actualConfig) 21 22 expectedConfig = &store.Config{ 23 Bucket: "bar", 24 ConnectionTimeout: 42 * time.Second, 25 } 26 os.Setenv("BOLTDB_TIMEOUT", "42") 27 defer os.Unsetenv("BOLTDB_TIMEOUT") 28 actualConfig, err = setupBoltDB("bar") 29 assert.NoError(t, err) 30 assert.Equal(t, expectedConfig, actualConfig) 31 32 expectedConfig = &store.Config{ 33 Bucket: "bar", 34 ConnectionTimeout: 42 * time.Second, 35 PersistConnection: true, 36 } 37 os.Setenv("BOLTDB_PERSIST", "true") 38 defer os.Unsetenv("BOLTDB_PERSIST") 39 actualConfig, err = setupBoltDB("bar") 40 assert.NoError(t, err) 41 assert.Equal(t, expectedConfig, actualConfig) 42 } 43 44 func TestNewBoltDB(t *testing.T) { 45 u, _ := url.Parse("boltdb:///bolt.db") 46 _, err := NewBoltDB(u) 47 assert.Error(t, err) 48 }