Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(134)

Unified Diff: service/datastore/index_test.go

Issue 1574353004: GitHub #8: Seed indexes from index.yml (Closed) Base URL: https://github.com/luci/gae@master
Patch Set: Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: service/datastore/index_test.go
diff --git a/service/datastore/index_test.go b/service/datastore/index_test.go
index 6ec9d0953a369a19083f4b131fdf2969cc7624de..44bd359b8de26f3e621bc1dc8390245ca17e4e03 100644
--- a/service/datastore/index_test.go
+++ b/service/datastore/index_test.go
@@ -7,18 +7,21 @@
package datastore
import (
+ "fmt"
"strings"
"testing"
. "github.com/smartystreets/goconvey/convey"
+ "gopkg.in/yaml.v2"
)
var indexDefinitionTests = []struct {
- id *IndexDefinition
- builtin bool
- compound bool
- str string
- yaml []string
+ id *IndexDefinition
+ builtin bool
+ compound bool
+ str string
+ yaml []string
+ serialized []string // without the leading hyphen, for instance
iannucci 2016/01/13 19:12:20 I don't understand this comment
nishanths (utexas) 2016/01/14 21:12:56 My bad. Meant: not inside an array (YAML arrays ha
}{
{
id: &IndexDefinition{Kind: "kind"},
@@ -63,6 +66,14 @@ var indexDefinitionTests = []struct {
" - name: other",
" direction: desc",
},
+ serialized: []string{
+ " kind: Kind",
dnj 2016/01/13 16:16:40 You should be able to avoid repeating "yaml" by Ma
nishanths (utexas) 2016/01/14 21:12:56 Thanks! Much cleaner. :)
+ " ancestor: yes",
+ " properties:",
+ " - name: prop",
+ " - name: other",
+ " direction: desc",
+ },
},
}
@@ -80,4 +91,21 @@ func TestIndexDefinition(t *testing.T) {
})
}
})
+
+ Convey("Test MarshalYAML/UnmarshalYAML", t, func() {
+ for _, tc := range indexDefinitionTests {
+ Convey(fmt.Sprintf("serializable index definition `%s` is marshaled and unmarshaled correctly", tc.str), func() {
+ if tc.serialized != nil {
+ // marshal
+ _, err := yaml.Marshal(tc.id)
+ So(err, ShouldBeNil)
+
+ // unmarshal
+ var id IndexDefinition
+ yaml.Unmarshal([]byte(strings.Join(tc.serialized, "\n")), &id)
+ So(&id, ShouldResemble, tc.id)
+ }
+ })
+ }
+ })
}

Powered by Google App Engine
This is Rietveld 408576698