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  }