| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // adapted from github.com/golang/appengine/datastore | 5 // adapted from github.com/golang/appengine/datastore |
| 6 | 6 |
| 7 package datastore | 7 package datastore |
| 8 | 8 |
| 9 import ( | 9 import ( |
| 10 "fmt" |
| 10 "strings" | 11 "strings" |
| 11 "testing" | 12 "testing" |
| 12 | 13 |
| 13 . "github.com/smartystreets/goconvey/convey" | 14 . "github.com/smartystreets/goconvey/convey" |
| 15 "gopkg.in/yaml.v2" |
| 14 ) | 16 ) |
| 15 | 17 |
| 16 var indexDefinitionTests = []struct { | 18 var indexDefinitionTests = []struct { |
| 17 id *IndexDefinition | 19 id *IndexDefinition |
| 18 builtin bool | 20 builtin bool |
| 19 compound bool | 21 compound bool |
| 20 str string | 22 str string |
| 21 yaml []string | 23 yaml []string |
| 22 }{ | 24 }{ |
| 23 { | 25 { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 for _, tc := range indexDefinitionTests { | 75 for _, tc := range indexDefinitionTests { |
| 74 Convey(tc.str, func() { | 76 Convey(tc.str, func() { |
| 75 So(tc.id.String(), ShouldEqual, tc.str) | 77 So(tc.id.String(), ShouldEqual, tc.str) |
| 76 So(tc.id.Builtin(), ShouldEqual, tc.builtin) | 78 So(tc.id.Builtin(), ShouldEqual, tc.builtin) |
| 77 So(tc.id.Compound(), ShouldEqual, tc.compound) | 79 So(tc.id.Compound(), ShouldEqual, tc.compound) |
| 78 yaml, _ := tc.id.YAMLString() | 80 yaml, _ := tc.id.YAMLString() |
| 79 So(yaml, ShouldEqual, strings.Join(tc.yaml, "\n"
)) | 81 So(yaml, ShouldEqual, strings.Join(tc.yaml, "\n"
)) |
| 80 }) | 82 }) |
| 81 } | 83 } |
| 82 }) | 84 }) |
| 85 |
| 86 Convey("Test MarshalYAML/UnmarshalYAML", t, func() { |
| 87 for _, tc := range indexDefinitionTests { |
| 88 Convey(fmt.Sprintf("marshallable index definition `%s` i
s marshalled and unmarshalled correctly", tc.str), func() { |
| 89 if tc.yaml != nil { |
| 90 // marshal |
| 91 _, err := yaml.Marshal(tc.id) |
| 92 So(err, ShouldBeNil) |
| 93 |
| 94 // unmarshal |
| 95 var ids []*IndexDefinition |
| 96 yaml.Unmarshal([]byte(strings.Join(tc.ya
ml, "\n")), &ids) |
| 97 So(ids[0], ShouldResemble, tc.id) |
| 98 } |
| 99 }) |
| 100 } |
| 101 }) |
| 83 } | 102 } |
| OLD | NEW |