| 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 "strings" | 9 "strings" |
| 10 "testing" | 10 "testing" |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 78 pmap("$key", key("Kind", 3, "Kind", 2), Next, | 78 pmap("$key", key("Kind", 3, "Kind", 2), Next, |
| 79 "Val", 3, 4, Next, | 79 "Val", 3, 4, Next, |
| 80 "Extra", "hello", "waffle", | 80 "Extra", "hello", "waffle", |
| 81 ), | 81 ), |
| 82 pmap("$key", key("Kind", 3, "Kind", 3), Next, | 82 pmap("$key", key("Kind", 3, "Kind", 3), Next, |
| 83 "Val", 3, 4, 2, 1, Next, | 83 "Val", 3, 4, 2, 1, Next, |
| 84 "Extra", "nuts", | 84 "Extra", "nuts", |
| 85 ), | 85 ), |
| 86 } | 86 } |
| 87 | 87 |
| 88 var timeData = []ds.PropertyMap{ |
| 89 pmap("$key", key("Kind", 1), Next, |
| 90 "Date", time.Date(2000, time.January, 1, 1, 1, 1, 1, time.UTC),
Next, |
| 91 ), |
| 92 pmap("$key", key("Kind", 2), Next, |
| 93 "Date", time.Date(2000, time.March, 1, 1, 1, 1, 1, time.UTC), Ne
xt, |
| 94 ), |
| 95 } |
| 96 |
| 88 var queryExecutionTests = []qExTest{ | 97 var queryExecutionTests = []qExTest{ |
| 89 {"basic", []qExStage{ | 98 {"basic", []qExStage{ |
| 90 { | 99 { |
| 91 addIdxs: []*ds.IndexDefinition{ | 100 addIdxs: []*ds.IndexDefinition{ |
| 92 indx("Unrelated", "-thing", "bob", "-__key__"), | 101 indx("Unrelated", "-thing", "bob", "-__key__"), |
| 93 indx("Wat", "deep", "opt", "other"), | 102 indx("Wat", "deep", "opt", "other"), |
| 94 indx("Wat", "meep", "opt", "other"), | 103 indx("Wat", "meep", "opt", "other"), |
| 95 }, | 104 }, |
| 96 }, | 105 }, |
| 97 | 106 |
| (...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 378 {q: nq("Unique").Gt("__key__", key("AKind", 5)).
Lte("__key__", key("Zeta", "prime")), | 387 {q: nq("Unique").Gt("__key__", key("AKind", 5)).
Lte("__key__", key("Zeta", "prime")), |
| 379 keys: []*ds.Key{key("Unique", 1)}, | 388 keys: []*ds.Key{key("Unique", 1)}, |
| 380 get: []ds.PropertyMap{}}, | 389 get: []ds.PropertyMap{}}, |
| 381 | 390 |
| 382 {q: nq("Kind").Eq("Val", 1, 3), get: []ds.Proper
tyMap{ | 391 {q: nq("Kind").Eq("Val", 1, 3), get: []ds.Proper
tyMap{ |
| 383 stage1Data[0], stage2Data[2], | 392 stage1Data[0], stage2Data[2], |
| 384 }}, | 393 }}, |
| 385 }, | 394 }, |
| 386 }, | 395 }, |
| 387 }}, | 396 }}, |
| 397 {"time range", []qExStage{ |
| 398 { |
| 399 addIdxs: []*ds.IndexDefinition{ |
| 400 indx("Kind!", "Date"), |
| 401 }, |
| 402 }, |
| 403 { |
| 404 putEnts: timeData, |
| 405 }, |
| 406 { |
| 407 expect: []qExpect{ |
| 408 { |
| 409 q: nq("Kind").Lte("Date", time.Date(2000
, time.February, 1, 1, 1, 1, 1, time.UTC)), |
| 410 get: []ds.PropertyMap{ |
| 411 timeData[0], |
| 412 }, |
| 413 }, |
| 414 }, |
| 415 }, |
| 416 }}, |
| 388 } | 417 } |
| 389 | 418 |
| 390 func TestQueryExecution(t *testing.T) { | 419 func TestQueryExecution(t *testing.T) { |
| 391 t.Parallel() | 420 t.Parallel() |
| 392 | 421 |
| 393 Convey("Test query execution", t, func() { | 422 Convey("Test query execution", t, func() { |
| 394 c, err := info.Get(Use(context.Background())).Namespace("ns") | 423 c, err := info.Get(Use(context.Background())).Namespace("ns") |
| 395 if err != nil { | 424 if err != nil { |
| 396 panic(err) | 425 panic(err) |
| 397 } | 426 } |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 461 err := r
unner(func(c context.Context) error { | 490 err := r
unner(func(c context.Context) error { |
| 462
data := ds.Get(c) | 491
data := ds.Get(c) |
| 463
count, err := data.Count(expect.q) | 492
count, err := data.Count(expect.q) |
| 464
So(err, ShouldBeNil) | 493
So(err, ShouldBeNil) |
| 465
So(count, ShouldEqual, expect.count) | 494
So(count, ShouldEqual, expect.count) |
| 466 | 495 |
| 467
rslt := []ds.PropertyMap(nil) | 496
rslt := []ds.PropertyMap(nil) |
| 468
So(data.GetAll(expect.q, &rslt), ShouldBeNil) | 497
So(data.GetAll(expect.q, &rslt), ShouldBeNil) |
| 469
So(len(rslt), ShouldEqual, len(expect.get)) | 498
So(len(rslt), ShouldEqual, len(expect.get)) |
| 470
for i, r := range rslt { | 499
for i, r := range rslt { |
| 471 » » » » » » » » » »
» So(r, ShouldResemble, expect.get[i]) | 500 » » » » » » » » » »
» So(r, ShouldResembleV, expect.get[i]) |
| 472
} | 501
} |
| 473
return nil | 502
return nil |
| 474 }, &ds.T
ransactionOptions{XG: true}) | 503 }, &ds.T
ransactionOptions{XG: true}) |
| 475 So(err,
ShouldBeNil) | 504 So(err,
ShouldBeNil) |
| 476 }) | 505 }) |
| 477 } | 506 } |
| 478 } | 507 } |
| 479 | 508 |
| 480 for j, fn := range stage.extraFn
s { | 509 for j, fn := range stage.extraFn
s { |
| 481 Convey(fmt.Sprintf("extr
aFn %d", j), func() { | 510 Convey(fmt.Sprintf("extr
aFn %d", j), func() { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 513 count, err := data.Count(q) | 542 count, err := data.Count(q) |
| 514 So(err, ShouldErrLike, "Insufficient indexes") | 543 So(err, ShouldErrLike, "Insufficient indexes") |
| 515 | 544 |
| 516 testing.AutoIndex(true) | 545 testing.AutoIndex(true) |
| 517 | 546 |
| 518 count, err = data.Count(q) | 547 count, err = data.Count(q) |
| 519 So(err, ShouldBeNil) | 548 So(err, ShouldBeNil) |
| 520 So(count, ShouldEqual, 2) | 549 So(count, ShouldEqual, 2) |
| 521 }) | 550 }) |
| 522 } | 551 } |
| OLD | NEW |