| Index: go/src/infra/gae/libs/meta/eg_test.go
 | 
| diff --git a/go/src/infra/gae/libs/meta/eg_test.go b/go/src/infra/gae/libs/meta/eg_test.go
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..8abb102ca30648e39967385b1a9de4c50098db8f
 | 
| --- /dev/null
 | 
| +++ b/go/src/infra/gae/libs/meta/eg_test.go
 | 
| @@ -0,0 +1,54 @@
 | 
| +// Copyright 2015 The Chromium Authors. All rights reserved.
 | 
| +// Use of this source code is governed by a BSD-style license that can be
 | 
| +// found in the LICENSE file.
 | 
| +
 | 
| +package meta
 | 
| +
 | 
| +import (
 | 
| +	"testing"
 | 
| +
 | 
| +	"golang.org/x/net/context"
 | 
| +
 | 
| +	"infra/gae/libs/wrapper"
 | 
| +	"infra/gae/libs/wrapper/memory"
 | 
| +
 | 
| +	. "github.com/smartystreets/goconvey/convey"
 | 
| +)
 | 
| +
 | 
| +func TestGetEntityGroupVersion(t *testing.T) {
 | 
| +	t.Parallel()
 | 
| +
 | 
| +	Convey("GetEntityGroupVersion", t, func() {
 | 
| +		c := memory.Use(memory.Enable(context.Background()))
 | 
| +		ds := wrapper.GetDS(c)
 | 
| +
 | 
| +		type A struct {
 | 
| +			ID  int64 `datastore:"-" goon:"id"`
 | 
| +			Val int
 | 
| +		}
 | 
| +
 | 
| +		a := &A{Val: 10}
 | 
| +		aKey, err := ds.Put(a)
 | 
| +		So(err, ShouldBeNil)
 | 
| +
 | 
| +		v, err := GetEntityGroupVersion(c, aKey)
 | 
| +		So(err, ShouldBeNil)
 | 
| +		So(v, ShouldEqual, 1)
 | 
| +
 | 
| +		So(ds.Delete(aKey), ShouldBeNil)
 | 
| +
 | 
| +		v, err = GetEntityGroupVersion(c, ds.NewKey("madeUp", "thing", 0, aKey))
 | 
| +		So(err, ShouldBeNil)
 | 
| +		So(v, ShouldEqual, 2)
 | 
| +
 | 
| +		v, err = GetEntityGroupVersion(c, ds.NewKey("madeUp", "thing", 0, nil))
 | 
| +		So(err, ShouldBeNil)
 | 
| +		So(v, ShouldEqual, 0)
 | 
| +
 | 
| +		tDs := ds.(wrapper.Testable)
 | 
| +		tDs.BreakFeatures(nil, "Get")
 | 
| +
 | 
| +		v, err = GetEntityGroupVersion(c, aKey)
 | 
| +		So(err.Error(), ShouldContainSubstring, "INTERNAL_ERROR")
 | 
| +	})
 | 
| +}
 | 
| 
 |