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