1// Package repository contains helper methods for working with the Git repo.
2package repository
3
4import (
5 "testing"
6
7 "github.com/stretchr/testify/assert"
8)
9
10func TestConfig(t *testing.T) {
11 repo := CreateTestRepo(false)
12 defer CleanupTestRepos(t, repo)
13
14 config := repo.LocalConfig()
15
16 err := config.Store("section.key", "value")
17 assert.NoError(t, err)
18
19 val, err := config.ReadString("section.key")
20 assert.Equal(t, "value", val)
21
22 err = config.Store("section.true", "true")
23 assert.NoError(t, err)
24
25 val2, err := config.ReadBool("section.true")
26 assert.Equal(t, true, val2)
27
28 configs, err := config.ReadAll("section")
29 assert.NoError(t, err)
30 assert.Equal(t, configs, map[string]string{
31 "section.key": "value",
32 "section.true": "true",
33 })
34
35 err = config.RemoveAll("section.true")
36 assert.NoError(t, err)
37
38 configs, err = config.ReadAll("section")
39 assert.NoError(t, err)
40 assert.Equal(t, configs, map[string]string{
41 "section.key": "value",
42 })
43
44 _, err = config.ReadBool("section.true")
45 assert.Equal(t, ErrNoConfigEntry, err)
46
47 err = config.RemoveAll("section.nonexistingkey")
48 assert.Error(t, err)
49
50 err = config.RemoveAll("section.key")
51 assert.NoError(t, err)
52
53 _, err = config.ReadString("section.key")
54 assert.Equal(t, ErrNoConfigEntry, err)
55
56 err = config.RemoveAll("nonexistingsection")
57 assert.Error(t, err)
58
59 err = config.RemoveAll("section")
60 assert.Error(t, err)
61
62 _, err = config.ReadString("section.key")
63 assert.Error(t, err)
64
65 err = config.RemoveAll("section.key")
66 assert.Error(t, err)
67}