config_test.go
author Ollivier Robert <roberto@keltia.net>
Tue, 11 Apr 2017 00:09:21 +0200
changeset 61 8527821202fd
parent 60 ca2a067d21af
child 63 8d31e8907662
permissions -rw-r--r--
Add missing test file.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8
6d89be3dd966 Placeholders.
Ollivier Robert <roberto@keltia.net>
parents:
diff changeset
     1
package gondole
23
512f1bfaed0c Start a config module.
Ollivier Robert <roberto@keltia.net>
parents: 8
diff changeset
     2
45
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
     3
import (
57
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
     4
	"github.com/stretchr/testify/assert"
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
     5
	"os"
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
     6
	"path/filepath"
45
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
     7
	"testing"
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
     8
)
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
     9
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    10
func TestLoadGlobal(t *testing.T) {
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    11
	baseDir = "."
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    12
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    13
	_, err := loadGlobal(filepath.Join("test", "non.toml"))
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    14
	assert.Error(t, err, "does not exist")
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    15
60
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    16
	_, err = loadGlobal(filepath.Join("test", "garbage.token"))
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    17
	assert.Error(t, err, "just garbage")
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    18
47
4ea0a1d2cf9a Grrr, workaround the fact that one can not commit "000" files.
Ollivier Robert <roberto@keltia.net>
parents: 45
diff changeset
    19
	// git does now allow you to checkin 000 files :(
4ea0a1d2cf9a Grrr, workaround the fact that one can not commit "000" files.
Ollivier Robert <roberto@keltia.net>
parents: 45
diff changeset
    20
	err = os.Chmod(filepath.Join("test", "perms.toml"), 000)
45
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    21
	_, err = loadGlobal(filepath.Join("test", "perms.toml"))
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    22
	assert.Error(t, err, "unreadable")
47
4ea0a1d2cf9a Grrr, workaround the fact that one can not commit "000" files.
Ollivier Robert <roberto@keltia.net>
parents: 45
diff changeset
    23
	err = os.Chmod(filepath.Join("test", "perms.toml"), 600)
45
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    24
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    25
	c, err := loadGlobal(filepath.Join("test", "config.toml"))
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    26
	assert.NoError(t, err, "should read it fine")
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    27
	assert.EqualValues(t, "foobar", c.Default, "equal")
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    28
}
c1fd96210492 Add test for loadGlobal().
Ollivier Robert <roberto@keltia.net>
parents: 23
diff changeset
    29
57
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    30
func TestLoadInstance(t *testing.T) {
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    31
	baseDir = "."
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    32
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    33
	_, err := loadInstance("nonexistent")
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    34
	assert.Error(t, err, "does not exist")
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    35
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    36
	real := &Server{
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    37
		ID:          666,
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    38
		Name:        "foo",
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    39
		BearerToken: "d3b07384d113edec49eaa6238ad5ff00",
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    40
	}
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    41
	s, err := loadInstance("test/foo")
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    42
	assert.NoError(t, err, "all fine")
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    43
	assert.Equal(t, real, s, "equal")
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    44
}
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    45
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    46
func TestGetInstanceList(t *testing.T) {
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    47
	baseDir = "test"
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    48
60
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    49
	real := []string{"test/foo.token", "test/garbage.token"}
57
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    50
	list := GetInstanceList()
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    51
	assert.Equal(t, real, list, "equal")
58
3ec984cfcb12 Some more tests.
Ollivier Robert <roberto@keltia.net>
parents: 57
diff changeset
    52
3ec984cfcb12 Some more tests.
Ollivier Robert <roberto@keltia.net>
parents: 57
diff changeset
    53
	baseDir = "/tmp"
3ec984cfcb12 Some more tests.
Ollivier Robert <roberto@keltia.net>
parents: 57
diff changeset
    54
	real = nil
3ec984cfcb12 Some more tests.
Ollivier Robert <roberto@keltia.net>
parents: 57
diff changeset
    55
	list = GetInstanceList()
3ec984cfcb12 Some more tests.
Ollivier Robert <roberto@keltia.net>
parents: 57
diff changeset
    56
	assert.Equal(t, real, list, "equal")
60
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    57
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    58
	baseDir = "/nonexistent"
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    59
	real = nil
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    60
	list = GetInstanceList()
ca2a067d21af More tests.
Ollivier Robert <roberto@keltia.net>
parents: 58
diff changeset
    61
	assert.Equal(t, real, list, "equal")
57
5effcb7253a8 gofmt pass.
Ollivier Robert <roberto@keltia.net>
parents: 47
diff changeset
    62
}