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

Side by Side Diff: impl/memory/datastore_test.go

Issue 2007123002: datastore: Update AllocateIDs to take keys. (Closed) Base URL: https://chromium.googlesource.com/external/github.com/luci/gae@master
Patch Set: Add empty arg/key short-circuits for other varidic methods. Created 4 years, 6 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 unified diff | Download patch
OLDNEW
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 package memory 5 package memory
6 6
7 import ( 7 import (
8 "fmt" 8 "fmt"
9 "testing" 9 "testing"
10 "time" 10 "time"
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 "Val": {dsS.MkProperty( 10)}, 155 "Val": {dsS.MkProperty( 10)},
156 "Name": {dsS.MkProperty( "")}, 156 "Name": {dsS.MkProperty( "")},
157 "$key": {dsS.MkPropertyN I(keys[i])}, 157 "$key": {dsS.MkPropertyN I(keys[i])},
158 }) 158 })
159 } 159 }
160 }) 160 })
161 161
162 }) 162 })
163 163
164 Convey("allocating ids prevents their use", func() { 164 Convey("allocating ids prevents their use", func() {
165 » » » » start, err := ds.AllocateIDs(ds.MakeKey("Foo", 0 ), 100) 165 » » » » keys := ds.NewIncompleteKeys(100, "Foo", nil)
166 » » » » So(err, ShouldBeNil) 166 » » » » So(ds.AllocateIDs(keys), ShouldBeNil)
167 » » » » So(start, ShouldEqual, 2) 167 » » » » So(len(keys), ShouldEqual, 100)
168 168
169 // Assert that none of our keys share the same I D.
170 ids := make(map[int64]struct{})
171 for _, k := range keys {
172 ids[k.IntID()] = struct{}{}
173 }
174 So(len(ids), ShouldEqual, len(keys))
175
176 // Put a new object and ensure that it is alloca ted an unused ID.
169 f := &Foo{Val: 10} 177 f := &Foo{Val: 10}
170 So(ds.Put(f), ShouldBeNil) 178 So(ds.Put(f), ShouldBeNil)
171 k := ds.KeyForObj(f) 179 k := ds.KeyForObj(f)
172 So(k.String(), ShouldEqual, "dev~app::/Foo,102") 180 So(k.String(), ShouldEqual, "dev~app::/Foo,102")
181
182 _, ok := ids[k.IntID()]
183 So(ok, ShouldBeFalse)
173 }) 184 })
174 }) 185 })
175 186
176 Convey("implements DSTransactioner", func() { 187 Convey("implements DSTransactioner", func() {
177 Convey("Put", func() { 188 Convey("Put", func() {
178 f := &Foo{Val: 10} 189 f := &Foo{Val: 10}
179 So(ds.Put(f), ShouldBeNil) 190 So(ds.Put(f), ShouldBeNil)
180 k := ds.KeyForObj(f) 191 k := ds.KeyForObj(f)
181 So(k.String(), ShouldEqual, "dev~app::/Foo,1") 192 So(k.String(), ShouldEqual, "dev~app::/Foo,1")
182 193
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after
756 // Add "foos" to a new namespace, then confirm that it g ets indexed. 767 // Add "foos" to a new namespace, then confirm that it g ets indexed.
757 So(dsS.Get(infoS.Get(ctx).MustNamespace("qux")).PutMulti (foos), ShouldBeNil) 768 So(dsS.Get(infoS.Get(ctx).MustNamespace("qux")).PutMulti (foos), ShouldBeNil)
758 dsS.Get(ctx).Testable().CatchupIndexes() 769 dsS.Get(ctx).Testable().CatchupIndexes()
759 770
760 results = nil 771 results = nil
761 So(dsS.Get(infoS.Get(ctx).MustNamespace("qux")).GetAll(q , &results), ShouldBeNil) 772 So(dsS.Get(infoS.Get(ctx).MustNamespace("qux")).GetAll(q , &results), ShouldBeNil)
762 So(len(results), ShouldEqual, 2) 773 So(len(results), ShouldEqual, 2)
763 }) 774 })
764 }) 775 })
765 } 776 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698