2016-10-13 20:48:57 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2016-10-13 21:28:37 +00:00
|
|
|
"bytes"
|
2016-10-13 20:48:57 +00:00
|
|
|
"net/url"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
uuid "github.com/satori/go.uuid"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestConfig(t *testing.T) {
|
|
|
|
|
|
|
|
u, err := url.Parse("file:///tmp/tmp.xJiSJUcyus")
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
so1 := SyncRef{
|
|
|
|
ID: uuid.NewV4().String(),
|
|
|
|
URI: u.String(),
|
|
|
|
}
|
|
|
|
so2 := SyncRef{
|
|
|
|
ID: uuid.NewV4().String(),
|
|
|
|
URI: "file:///tmp/tmp.bhSM7oRner",
|
|
|
|
}
|
|
|
|
config := Config{
|
|
|
|
SyncRefs: []SyncRef{
|
|
|
|
so1,
|
|
|
|
so2,
|
|
|
|
},
|
|
|
|
Groups: []Group{
|
|
|
|
Group{
|
|
|
|
ID: uuid.NewV4().String(),
|
|
|
|
Contains: []string{so1.ID, so2.ID},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
2016-10-13 21:28:37 +00:00
|
|
|
buf := bytes.NewBuffer([]byte{})
|
|
|
|
if err := WriteConfig(buf, config); err != nil {
|
2016-10-13 20:48:57 +00:00
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
2016-10-13 21:28:37 +00:00
|
|
|
newConfig, err := ReadConfig(bytes.NewReader(buf.Bytes()))
|
|
|
|
if err != nil {
|
2016-10-13 20:48:57 +00:00
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, group := range newConfig.Groups {
|
|
|
|
for _, contain := range group.Contains {
|
|
|
|
found := false
|
|
|
|
for _, ref := range newConfig.SyncRefs {
|
|
|
|
if ref.ID == contain {
|
|
|
|
found = true
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if !found {
|
|
|
|
t.Errorf("expected all group ref IDs to exist, but %q did not", contain)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|