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

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

Issue 1357343002: Add missing AllocateIDs API. (Closed) Base URL: https://github.com/luci/gae.git@master
Patch Set: add panic Created 5 years, 2 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
« no previous file with comments | « impl/memory/datastore_data.go ('k') | impl/prod/raw_datastore.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 So(testGetMeta(c, k), ShouldEqual, 11) 103 So(testGetMeta(c, k), ShouldEqual, 11)
104 104
105 keys := make([]*dsS.Key, len(foos)) 105 keys := make([]*dsS.Key, len(foos))
106 for i, f := range foos { 106 for i, f := range foos {
107 keys[i] = ds.KeyForObj(&f) 107 keys[i] = ds.KeyForObj(&f)
108 } 108 }
109 109
110 Convey("ensure that group versions persist acros s deletes", func() { 110 Convey("ensure that group versions persist acros s deletes", func() {
111 So(ds.DeleteMulti(append(keys, k)), Shou ldBeNil) 111 So(ds.DeleteMulti(append(keys, k)), Shou ldBeNil)
112 112
113 » » » » » // TODO(riannucci): replace with a Count query instead of this cast 113 » » » » » ds.Testable().CatchupIndexes()
114 » » » » » /* 114
115 » » » » » » ents := ds.(*dsImpl).data.head.G etCollection("ents:") 115 » » » » » count := 0
116 » » » » » » num, _ := ents.GetTotals() 116 » » » » » So(ds.Run(dsS.NewQuery(""), func(_ *dsS. Key, _ dsS.CursorCB) bool {
117 » » » » » » // /__entity_root_ids__,Foo 117 » » » » » » count++
118 » » » » » » // /Foo,1/__entity_group__,1 118 » » » » » » return true
119 » » » » » » // /Foo,1/__entity_group_ids__,1 119 » » » » » }), ShouldBeNil)
120 » » » » » » So(num, ShouldEqual, 3) 120 » » » » » So(count, ShouldEqual, 3)
121 » » » » » */
122 121
123 So(testGetMeta(c, k), ShouldEqual, 22) 122 So(testGetMeta(c, k), ShouldEqual, 22)
124 123
125 So(ds.Put(&Foo{ID: 1}), ShouldBeNil) 124 So(ds.Put(&Foo{ID: 1}), ShouldBeNil)
126 So(testGetMeta(c, k), ShouldEqual, 23) 125 So(testGetMeta(c, k), ShouldEqual, 23)
127 }) 126 })
128 127
129 Convey("can Get", func() { 128 Convey("can Get", func() {
130 vals := make([]dsS.PropertyMap, len(keys )) 129 vals := make([]dsS.PropertyMap, len(keys ))
131 for i := range vals { 130 for i := range vals {
132 vals[i] = dsS.PropertyMap{} 131 vals[i] = dsS.PropertyMap{}
133 So(vals[i].SetMeta("key", keys[i ]), ShouldBeNil) 132 So(vals[i].SetMeta("key", keys[i ]), ShouldBeNil)
134 } 133 }
135 So(ds.GetMulti(vals), ShouldBeNil) 134 So(ds.GetMulti(vals), ShouldBeNil)
136 135
137 for i, val := range vals { 136 for i, val := range vals {
138 So(val, ShouldResemble, dsS.Prop ertyMap{ 137 So(val, ShouldResemble, dsS.Prop ertyMap{
139 "Val": {dsS.MkProperty( 10)}, 138 "Val": {dsS.MkProperty( 10)},
140 "$key": {dsS.MkPropertyN I(keys[i])}, 139 "$key": {dsS.MkPropertyN I(keys[i])},
141 }) 140 })
142 } 141 }
143 }) 142 })
144 143
145 }) 144 })
145
146 Convey("allocating ids prevents their use", func() {
147 start, err := ds.AllocateIDs(ds.MakeKey("Foo", 0 ), 100)
148 So(err, ShouldBeNil)
149 So(start, ShouldEqual, 2)
150
151 f := &Foo{Val: 10}
152 So(ds.Put(f), ShouldBeNil)
153 k := ds.KeyForObj(f)
154 So(k.String(), ShouldEqual, "dev~app::/Foo,102")
155 })
146 }) 156 })
147 157
148 Convey("implements DSTransactioner", func() { 158 Convey("implements DSTransactioner", func() {
149 Convey("Put", func() { 159 Convey("Put", func() {
150 f := &Foo{Val: 10} 160 f := &Foo{Val: 10}
151 So(ds.Put(f), ShouldBeNil) 161 So(ds.Put(f), ShouldBeNil)
152 k := ds.KeyForObj(f) 162 k := ds.KeyForObj(f)
153 So(k.String(), ShouldEqual, "dev~app::/Foo,1") 163 So(k.String(), ShouldEqual, "dev~app::/Foo,1")
154 164
155 Convey("can Put new entity groups", func() { 165 Convey("can Put new entity groups", func() {
(...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 ds := dsS.Get(Use(context.Background())) 527 ds := dsS.Get(Use(context.Background()))
518 m := Model{ID: 1} 528 m := Model{ID: 1}
519 So(ds.Put(&m), ShouldBeNil) 529 So(ds.Put(&m), ShouldBeNil)
520 530
521 // Reset to something non zero to ensure zero is fetched. 531 // Reset to something non zero to ensure zero is fetched.
522 m.Time = time.Now().UTC() 532 m.Time = time.Now().UTC()
523 So(ds.Get(&m), ShouldBeNil) 533 So(ds.Get(&m), ShouldBeNil)
524 So(m.Time.IsZero(), ShouldBeTrue) 534 So(m.Time.IsZero(), ShouldBeTrue)
525 }) 535 })
526 } 536 }
OLDNEW
« no previous file with comments | « impl/memory/datastore_data.go ('k') | impl/prod/raw_datastore.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698