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 err := repo.LocalConfig().StoreString("section.key", "value")
15 assert.NoError(t, err)
16
17 val, err := repo.LocalConfig().ReadString("section.key")
18 assert.NoError(t, err)
19 assert.Equal(t, "value", val)
20
21 err = repo.LocalConfig().StoreString("section.true", "true")
22 assert.NoError(t, err)
23
24 val2, err := repo.LocalConfig().ReadBool("section.true")
25 assert.NoError(t, err)
26 assert.Equal(t, true, val2)
27
28 configs, err := repo.LocalConfig().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 = repo.LocalConfig().RemoveAll("section.true")
36 assert.NoError(t, err)
37
38 configs, err = repo.LocalConfig().ReadAll("section")
39 assert.NoError(t, err)
40 assert.Equal(t, configs, map[string]string{
41 "section.key": "value",
42 })
43
44 _, err = repo.LocalConfig().ReadBool("section.true")
45 assert.Equal(t, ErrNoConfigEntry, err)
46
47 err = repo.LocalConfig().RemoveAll("section.nonexistingkey")
48 assert.Error(t, err)
49
50 err = repo.LocalConfig().RemoveAll("section.key")
51 assert.NoError(t, err)
52
53 _, err = repo.LocalConfig().ReadString("section.key")
54 assert.Equal(t, ErrNoConfigEntry, err)
55
56 err = repo.LocalConfig().RemoveAll("nonexistingsection")
57 assert.Error(t, err)
58
59 err = repo.LocalConfig().RemoveAll("section")
60 assert.Error(t, err)
61
62 _, err = repo.LocalConfig().ReadString("section.key")
63 assert.Error(t, err)
64
65 err = repo.LocalConfig().RemoveAll("section.key")
66 assert.Error(t, err)
67}