Switch to using the dep tool and update all the dependencies
This commit is contained in:
+119
@@ -0,0 +1,119 @@
|
||||
/*
|
||||
Copyright 2017 Google Inc. All Rights Reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package spanner
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
proto3 "github.com/golang/protobuf/ptypes/struct"
|
||||
sppb "google.golang.org/genproto/googleapis/spanner/v1"
|
||||
)
|
||||
|
||||
// Test KeySet.proto().
|
||||
func TestKeySetToProto(t *testing.T) {
|
||||
for _, test := range []struct {
|
||||
ks KeySet
|
||||
wantProto *sppb.KeySet
|
||||
}{
|
||||
{
|
||||
KeySet{},
|
||||
&sppb.KeySet{
|
||||
Keys: []*proto3.ListValue{},
|
||||
Ranges: []*sppb.KeyRange{},
|
||||
},
|
||||
},
|
||||
{
|
||||
KeySet{All: true},
|
||||
&sppb.KeySet{
|
||||
All: true,
|
||||
Keys: []*proto3.ListValue{},
|
||||
Ranges: []*sppb.KeyRange{},
|
||||
},
|
||||
},
|
||||
{
|
||||
KeySet{Keys: []Key{{1, 2}, {3, 4}}},
|
||||
&sppb.KeySet{
|
||||
Keys: []*proto3.ListValue{listValueProto(intProto(1), intProto(2)), listValueProto(intProto(3), intProto(4))},
|
||||
Ranges: []*sppb.KeyRange{},
|
||||
},
|
||||
},
|
||||
{
|
||||
KeySet{Ranges: []KeyRange{{Key{1}, Key{2}, ClosedClosed}, {Key{3}, Key{10}, OpenClosed}}},
|
||||
&sppb.KeySet{
|
||||
Keys: []*proto3.ListValue{},
|
||||
Ranges: []*sppb.KeyRange{
|
||||
&sppb.KeyRange{
|
||||
&sppb.KeyRange_StartClosed{listValueProto(intProto(1))},
|
||||
&sppb.KeyRange_EndClosed{listValueProto(intProto(2))},
|
||||
},
|
||||
&sppb.KeyRange{
|
||||
&sppb.KeyRange_StartOpen{listValueProto(intProto(3))},
|
||||
&sppb.KeyRange_EndClosed{listValueProto(intProto(10))},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
} {
|
||||
gotProto, err := test.ks.proto()
|
||||
if err != nil {
|
||||
t.Errorf("%v.proto() returns error %v; want nil error", test.ks, err)
|
||||
}
|
||||
if !reflect.DeepEqual(gotProto, test.wantProto) {
|
||||
t.Errorf("%v.proto() = \n%v\nwant:\n%v", test.ks, gotProto.String(), test.wantProto.String())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Test helpers that help to create KeySets.
|
||||
func TestKeySetHelpers(t *testing.T) {
|
||||
// Test Keys with one key.
|
||||
k := Key{[]byte{1, 2, 3}}
|
||||
if got, want := Keys(k), (KeySet{Keys: []Key{k}}); !reflect.DeepEqual(got, want) {
|
||||
t.Errorf("Keys(%q) = %q, want %q", k, got, want)
|
||||
}
|
||||
// Test Keys with multiple keys.
|
||||
ks := []Key{Key{57}, Key{NullString{"value", false}}}
|
||||
if got, want := Keys(ks...), (KeySet{Keys: ks}); !reflect.DeepEqual(got, want) {
|
||||
t.Errorf("Keys(%v) = %v, want %v", ks, got, want)
|
||||
}
|
||||
// Test Range.
|
||||
kr := KeyRange{Key{1}, Key{10}, ClosedClosed}
|
||||
if got, want := Range(kr), (KeySet{Ranges: []KeyRange{kr}}); !reflect.DeepEqual(got, want) {
|
||||
t.Errorf("Range(%v) = %v, want %v", kr, got, want)
|
||||
}
|
||||
// Test PrefixRange.
|
||||
k = Key{2}
|
||||
kr = KeyRange{k, k, ClosedClosed}
|
||||
if got, want := PrefixRange(k), (KeySet{Ranges: []KeyRange{kr}}); !reflect.DeepEqual(got, want) {
|
||||
t.Errorf("PrefixRange(%v) = %v, want %v", k, got, want)
|
||||
}
|
||||
// Test UnionKeySets.
|
||||
sk1, sk2 := Keys(Key{2}), Keys(Key{3})
|
||||
r1, r2 := Range(KeyRange{Key{1}, Key{10}, ClosedClosed}), Range(KeyRange{Key{15}, Key{20}, OpenClosed})
|
||||
want := KeySet{
|
||||
Keys: []Key{Key{2}, Key{3}},
|
||||
Ranges: []KeyRange{KeyRange{Key{1}, Key{10}, ClosedClosed}, KeyRange{Key{15}, Key{20}, OpenClosed}},
|
||||
}
|
||||
if got := UnionKeySets(sk1, sk2, r1, r2); !reflect.DeepEqual(got, want) {
|
||||
t.Errorf("UnionKeySets(%v, %v, %v, %v) = %v, want %v", sk1, sk2, r1, r2, got, want)
|
||||
}
|
||||
all := AllKeys()
|
||||
if got := UnionKeySets(sk1, sk2, r1, r2, all); !reflect.DeepEqual(got, all) {
|
||||
t.Errorf("UnionKeySets(%v, %v, %v, %v, %v) = %v, want %v", sk1, sk2, r1, r2, all, got, all)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user