aboutsummaryrefslogtreecommitdiffstats
path: root/storage/filesystem/config_test.go
diff options
context:
space:
mode:
authorSantiago M. Mola <santi@mola.io>2016-10-26 18:41:39 +0200
committerMáximo Cuadros <mcuadros@gmail.com>2016-10-26 16:41:39 +0000
commit61f0188edcea55dbcfa1c3a35da0c34fed10fd54 (patch)
tree08b59ecd20719f448d64073845bf40cf2d86fd7c /storage/filesystem/config_test.go
parent194da90f885d4cb7cf2bf4c84a74e5d559000764 (diff)
downloadgo-git-61f0188edcea55dbcfa1c3a35da0c34fed10fd54.tar.gz
formats/config: Added encoder/decoder for git config files. (#97)
* WIP: Add config format parser. * add decoder based on gcfg. Portions of code taken from: https://github.com/go-gcfg/gcfg/blob/5b9f94ee80b2331c3982477bd84be8edd857df33/read.go * add git config encoder and config methods. * use format/config in storage/filesystem for read * use format/config in storage/filesystem to write * formats/config: improve docs. * formats/config: improve tests. * formats/config: use our fork of gcfg; improve api. * formats/config: improve api. * storage/filesystem: fix gofmt * formats/config: use NoSubsection constant. * formats/config: add doc.go * formats/config: requested sytle changes. * formats/config: do not use *_test packages.
Diffstat (limited to 'storage/filesystem/config_test.go')
-rw-r--r--storage/filesystem/config_test.go47
1 files changed, 19 insertions, 28 deletions
diff --git a/storage/filesystem/config_test.go b/storage/filesystem/config_test.go
index cbff1e0..20af595 100644
--- a/storage/filesystem/config_test.go
+++ b/storage/filesystem/config_test.go
@@ -1,7 +1,7 @@
package filesystem
import (
- "bytes"
+ "gopkg.in/src-d/go-git.v4/formats/config"
. "gopkg.in/check.v1"
)
@@ -10,31 +10,22 @@ type ConfigSuite struct{}
var _ = Suite(&ConfigSuite{})
-func (s *ConfigSuite) TestConfigFileDecode(c *C) {
- config := &ConfigFile{}
-
- err := config.Decode(bytes.NewBuffer(configFixture))
- c.Assert(err, IsNil)
-
- c.Assert(config.Remotes, HasLen, 2)
- c.Assert(config.Remotes["origin"].URL, Equals, "git@github.com:src-d/go-git.git")
- c.Assert(config.Remotes["origin"].Fetch, HasLen, 1)
- c.Assert(config.Remotes["origin"].Fetch[0].String(), Equals, "+refs/heads/*:refs/remotes/origin/*")
+func (s *ConfigSuite) TestParseRemote(c *C) {
+ remote := parseRemote(&config.Subsection{
+ Name: "origin",
+ Options: []*config.Option{
+ {
+ Key: "url",
+ Value: "git@github.com:src-d/go-git.git",
+ },
+ {
+ Key: "fetch",
+ Value: "+refs/heads/*:refs/remotes/origin/*",
+ },
+ },
+ })
+
+ c.Assert(remote.URL, Equals, "git@github.com:src-d/go-git.git")
+ c.Assert(remote.Fetch, HasLen, 1)
+ c.Assert(remote.Fetch[0].String(), Equals, "+refs/heads/*:refs/remotes/origin/*")
}
-
-var configFixture = []byte(`
-[core]
- repositoryformatversion = 0
- filemode = true
- bare = false
- logallrefupdates = true
-[remote "origin"]
- url = git@github.com:src-d/go-git.git
- fetch = +refs/heads/*:refs/remotes/origin/*
-[branch "v4"]
- remote = origin
- merge = refs/heads/v4
-[remote "mcuadros"]
- url = git@github.com:mcuadros/go-git.git
- fetch = +refs/heads/*:refs/remotes/mcuadros/*
-`)