| 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 package memory | 5 package memory |
| 6 | 6 |
| 7 import ( | 7 import ( |
| 8 "fmt" | 8 "fmt" |
| 9 "infra/gae/libs/meta" | 9 "infra/gae/libs/meta" |
| 10 "infra/gae/libs/wrapper" | 10 "infra/gae/libs/wrapper" |
| 11 "math" | |
| 12 "testing" | 11 "testing" |
| 13 | 12 |
| 14 . "github.com/smartystreets/goconvey/convey" | 13 . "github.com/smartystreets/goconvey/convey" |
| 15 "golang.org/x/net/context" | 14 "golang.org/x/net/context" |
| 16 | 15 |
| 17 "appengine/datastore" | 16 "appengine/datastore" |
| 18 ) | 17 ) |
| 19 | 18 |
| 20 func TestDatastoreKinder(t *testing.T) { | 19 func TestDatastoreKinder(t *testing.T) { |
| 21 t.Parallel() | 20 t.Parallel() |
| (...skipping 495 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 So(ds.Get(f), ShouldBeNil) | 516 So(ds.Get(f), ShouldBeNil) |
| 518 So(f.Val, ShouldEqual, 10) | 517 So(f.Val, ShouldEqual, 10) |
| 519 }) | 518 }) |
| 520 }) | 519 }) |
| 521 }) | 520 }) |
| 522 }) | 521 }) |
| 523 | 522 |
| 524 }) | 523 }) |
| 525 } | 524 } |
| 526 | 525 |
| 526 const MaxUint = ^uint(0) |
| 527 const MaxInt = int(MaxUint >> 1) |
| 528 |
| 527 func TestDatastoreQueryer(t *testing.T) { | 529 func TestDatastoreQueryer(t *testing.T) { |
| 528 Convey("Datastore Query suport", t, func() { | 530 Convey("Datastore Query suport", t, func() { |
| 529 c := Use(context.Background()) | 531 c := Use(context.Background()) |
| 530 ds := wrapper.GetDS(c) | 532 ds := wrapper.GetDS(c) |
| 531 So(ds, ShouldNotBeNil) | 533 So(ds, ShouldNotBeNil) |
| 532 | 534 |
| 533 Convey("can create good queries", func() { | 535 Convey("can create good queries", func() { |
| 534 q := ds.NewQuery("Foo").KeysOnly().Limit(10).Offset(39) | 536 q := ds.NewQuery("Foo").KeysOnly().Limit(10).Offset(39) |
| 535 q = q.Start(queryCursor("kosmik")).End(queryCursor("krab
s")) | 537 q = q.Start(queryCursor("kosmik")).End(queryCursor("krab
s")) |
| 536 So(q, ShouldNotBeNil) | 538 So(q, ShouldNotBeNil) |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 587 }) | 589 }) |
| 588 Convey("bad order", func() { | 590 Convey("bad order", func() { |
| 589 q := q.Order("+Bob") | 591 q := q.Order("+Bob") |
| 590 So(q.(*queryImpl).err.Error(), ShouldContainSubs
tring, "invalid order") | 592 So(q.(*queryImpl).err.Error(), ShouldContainSubs
tring, "invalid order") |
| 591 }) | 593 }) |
| 592 Convey("empty", func() { | 594 Convey("empty", func() { |
| 593 q := q.Order("") | 595 q := q.Order("") |
| 594 So(q.(*queryImpl).err.Error(), ShouldContainSubs
tring, "empty order") | 596 So(q.(*queryImpl).err.Error(), ShouldContainSubs
tring, "empty order") |
| 595 }) | 597 }) |
| 596 Convey("OOB limit", func() { | 598 Convey("OOB limit", func() { |
| 597 » » » » q := q.Limit(math.MaxInt64) | 599 » » » » q := q.Limit(MaxInt) |
| 598 So(q.(*queryImpl).err.Error(), ShouldContainSubs
tring, "query limit overflow") | 600 So(q.(*queryImpl).err.Error(), ShouldContainSubs
tring, "query limit overflow") |
| 599 }) | 601 }) |
| 600 Convey("underflow offset", func() { | 602 Convey("underflow offset", func() { |
| 601 q := q.Offset(-29) | 603 q := q.Offset(-29) |
| 602 So(q.(*queryImpl).err.Error(), ShouldContainSubs
tring, "negative query offset") | 604 So(q.(*queryImpl).err.Error(), ShouldContainSubs
tring, "negative query offset") |
| 603 }) | 605 }) |
| 604 Convey("OOB offset", func() { | 606 Convey("OOB offset", func() { |
| 605 » » » » q := q.Offset(math.MaxInt64) | 607 » » » » q := q.Offset(MaxInt) |
| 606 So(q.(*queryImpl).err.Error(), ShouldContainSubs
tring, "query offset overflow") | 608 So(q.(*queryImpl).err.Error(), ShouldContainSubs
tring, "query offset overflow") |
| 607 }) | 609 }) |
| 608 Convey("Bad cursors", func() { | 610 Convey("Bad cursors", func() { |
| 609 q := q.Start(queryCursor("")).End(queryCursor(""
)) | 611 q := q.Start(queryCursor("")).End(queryCursor(""
)) |
| 610 So(q.(*queryImpl).err.Error(), ShouldContainSubs
tring, "invalid cursor") | 612 So(q.(*queryImpl).err.Error(), ShouldContainSubs
tring, "invalid cursor") |
| 611 }) | 613 }) |
| 612 Convey("Bad ancestors", func() { | 614 Convey("Bad ancestors", func() { |
| 613 q := q.Ancestor(ds.NewKey("Goop", "wat", 10, nil
)) | 615 q := q.Ancestor(ds.NewKey("Goop", "wat", 10, nil
)) |
| 614 So(q, ShouldNotBeNil) | 616 So(q, ShouldNotBeNil) |
| 615 qi := q.(*queryImpl).checkCorrectness("", false) | 617 qi := q.(*queryImpl).checkCorrectness("", false) |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 663 }) | 665 }) |
| 664 Convey("kindless with decending-__key__ orders", func()
{ | 666 Convey("kindless with decending-__key__ orders", func()
{ |
| 665 q := ds.NewQuery("").Order("-__key__") | 667 q := ds.NewQuery("").Order("-__key__") |
| 666 qi := q.(*queryImpl).checkCorrectness("", false) | 668 qi := q.(*queryImpl).checkCorrectness("", false) |
| 667 So(qi.err.Error(), ShouldContainSubstring, "kind
is required for all orders") | 669 So(qi.err.Error(), ShouldContainSubstring, "kind
is required for all orders") |
| 668 }) | 670 }) |
| 669 }) | 671 }) |
| 670 | 672 |
| 671 }) | 673 }) |
| 672 } | 674 } |
| OLD | NEW |