summaryrefslogtreecommitdiff
path: root/config_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'config_test.go')
-rw-r--r--config_test.go109
1 files changed, 109 insertions, 0 deletions
diff --git a/config_test.go b/config_test.go
new file mode 100644
index 0000000..f31e73e
--- /dev/null
+++ b/config_test.go
@@ -0,0 +1,109 @@
+package git
+
+import (
+ "os"
+ "testing"
+)
+
+var tempConfig = "./temp.gitconfig"
+
+func setupConfig() (*Config, error) {
+ var (
+ c *Config
+ err error
+ )
+
+ c, err = OpenOndisk(nil, tempConfig)
+ if err != nil {
+ return nil, err
+ }
+
+ err = c.SetString("foo.bar", "baz")
+ if err != nil {
+ return nil, err
+ }
+ err = c.SetBool("foo.bool", true)
+ if err != nil {
+ return nil, err
+ }
+ err = c.SetInt32("foo.int32", 32)
+ if err != nil {
+ return nil, err
+ }
+ err = c.SetInt64("foo.int64", 64)
+ if err != nil {
+ return nil, err
+ }
+
+ return c, err
+}
+
+func cleanupConfig() {
+ os.Remove(tempConfig)
+}
+
+type TestRunner func(*Config, *testing.T)
+
+var tests = []TestRunner{
+ // LookupString
+ func(c *Config, t *testing.T) {
+ val, err := c.LookupString("foo.bar")
+ if err != nil {
+ t.Errorf("Got LookupString error: '%v', expected none\n", err)
+ }
+ if val != "baz" {
+ t.Errorf("Got '%s' from LookupString, expected 'bar'\n", val)
+ }
+ },
+ // LookupBool
+ func(c *Config, t *testing.T) {
+ val, err := c.LookupBool("foo.bool")
+ if err != nil {
+ t.Errorf("Got LookupBool error: '%v', expected none\n", err)
+ }
+ if !val {
+ t.Errorf("Got %b from LookupBool, expected 'false'\n", val)
+ }
+ },
+ // LookupInt32
+ func(c *Config, t *testing.T) {
+ val, err := c.LookupInt32("foo.int32")
+ if err != nil {
+ t.Errorf("Got LookupInt32 error: '%v', expected none\n", err)
+ }
+ if val != 32 {
+ t.Errorf("Got %v, expected 32\n", val)
+ }
+ },
+ // LookupInt64
+ func(c *Config, t *testing.T) {
+ val, err := c.LookupInt64("foo.int64")
+ if err != nil {
+ t.Errorf("Got LookupInt64 error: '%v', expected none\n", err)
+ }
+ if val != 64 {
+ t.Errorf("Got %v, expected 64\n", val)
+ }
+ },
+}
+
+func TestConfigLookups(t *testing.T) {
+ t.Parallel()
+ var (
+ err error
+ c *Config
+ )
+
+ c, err = setupConfig()
+ defer cleanupConfig()
+
+ if err != nil {
+ t.Errorf("Setup error: '%v'. Expected none\n", err)
+ return
+ }
+ defer c.Free()
+
+ for _, test := range tests {
+ test(c, t)
+ }
+}