Chromium Code Reviews| Index: impl/memory/datastore_query_execution_test.go |
| diff --git a/impl/memory/datastore_query_execution_test.go b/impl/memory/datastore_query_execution_test.go |
| index 2a030b9c2455b075083a39564920f325bb0bb046..c6ca11c3a63ef12cc4c1f5b02168a07e5c694c9a 100644 |
| --- a/impl/memory/datastore_query_execution_test.go |
| +++ b/impl/memory/datastore_query_execution_test.go |
| @@ -70,6 +70,12 @@ var stage1Data = []ds.PropertyMap{ |
| ), |
| } |
| +var stage1Data3Enc = pmap("$key", key("Kind", 6), Next, |
| + "Val", 5, 3, 2, Next, |
| + "When", 946688461000000, Next, |
| + "Extra", "waffle", |
| +) |
| + |
| var stage2Data = []ds.PropertyMap{ |
| pmap("$key", key("Kind", 3, "Kind", 1), Next, |
| "Val", 2, 4, 28, Next, |
| @@ -85,6 +91,15 @@ var stage2Data = []ds.PropertyMap{ |
| ), |
| } |
| +var timeData = []ds.PropertyMap{ |
| + pmap("$key", key("Kind", 1), Next, |
| + "Date", time.Date(2000, time.January, 1, 1, 1, 1, 1, time.UTC), Next, |
| + ), |
| + pmap("$key", key("Kind", 2), Next, |
| + "Date", time.Date(2000, time.March, 1, 1, 1, 1, 1, time.UTC), Next, |
| + ), |
| +} |
| + |
| var queryExecutionTests = []qExTest{ |
| {"basic", []qExStage{ |
| { |
| @@ -130,7 +145,9 @@ var queryExecutionTests = []qExTest{ |
| indx("Kind!", "Bogus", "Extra", "-Val"), |
| }, |
| expect: []qExpect{ |
| - {q: nq("Kind"), get: stage1Data[:4]}, |
| + {q: nq("Kind"), get: []ds.PropertyMap{ |
| + stage1Data[0], stage1Data[1], stage1Data[2], stage1Data3Enc, |
| + }}, |
| {q: nq("Kind").Offset(2).Limit(1), get: []ds.PropertyMap{ |
| stage1Data[2], |
| @@ -141,7 +158,7 @@ var queryExecutionTests = []qExTest{ |
| {q: nq("Missing").Eq("Bogus", 3), get: []ds.PropertyMap{}}, |
| {q: nq("Kind").Eq("Extra", "waffle"), get: []ds.PropertyMap{ |
| - stage1Data[2], stage1Data[3], |
| + stage1Data[2], stage1Data3Enc, |
| }}, |
| // get ziggy with it |
| @@ -155,7 +172,7 @@ var queryExecutionTests = []qExTest{ |
| {q: nq("Kind").Eq("Val", 2, 3), get: []ds.PropertyMap{ |
| stage1Data[0], |
| - stage1Data[3], |
| + stage1Data3Enc, |
| }}, |
| // note the kind :) |
| @@ -205,11 +222,11 @@ var queryExecutionTests = []qExTest{ |
| }, |
| {q: nq("Kind").Gt("Val", 2).Lte("Val", 5), get: []ds.PropertyMap{ |
| - stage1Data[0], stage1Data[3], |
| + stage1Data[0], stage1Data3Enc, |
| }}, |
| {q: nq("Kind").Gt("Val", 2).Lte("Val", 5).Order("-Val"), get: []ds.PropertyMap{ |
| - stage1Data[3], stage1Data[0], |
| + stage1Data3Enc, stage1Data[0], |
| }}, |
| {q: nq("").Gt("__key__", key("Kind", 2)), |
| @@ -228,7 +245,7 @@ var queryExecutionTests = []qExTest{ |
| // the index snapshot! |
| pmap("$key", key("Kind", 3, "__entity_group__", 1), Next, |
| "__version__", 5), |
| - stage1Data[3], |
| + stage1Data3Enc, |
| pmap("$key", key("Kind", 6, "__entity_group__", 1), Next, |
| "__version__", 1), |
| pmap("$key", key("Unique", 1, "__entity_group__", 1), Next, |
| @@ -312,7 +329,7 @@ var queryExecutionTests = []qExTest{ |
| // Original (complex) types are retained when getting the full value. |
| {q: nq("Kind").Order("When"), get: []ds.PropertyMap{ |
| stage1Data[1], |
| - stage1Data[3], |
| + stage1Data3Enc, |
| stage1Data[2], |
| }}, |
| }, |
| @@ -385,6 +402,28 @@ var queryExecutionTests = []qExTest{ |
| }, |
| }, |
| }}, |
| + {"time range", []qExStage{ |
| + { |
| + addIdxs: []*ds.IndexDefinition{ |
| + indx("Kind!", "Date"), |
|
iannucci
2015/12/29 18:29:20
I think ! is shorthand for ancestor here, which yo
|
| + }, |
| + }, |
| + { |
| + putEnts: timeData, |
| + }, |
| + { |
| + expect: []qExpect{ |
| + { |
| + q: nq("Kind").Lte("Date", time.Date(2000, time.February, 1, 1, 1, 1, 1, time.UTC)), |
| + get: []ds.PropertyMap{ |
| + pmap("$key", key("Kind", 1), Next, |
| + "Date", 946688461000000, Next, |
| + ), |
| + }, |
| + }, |
| + }, |
| + }, |
| + }}, |
| } |
| func TestQueryExecution(t *testing.T) { |
| @@ -468,7 +507,7 @@ func TestQueryExecution(t *testing.T) { |
| So(data.GetAll(expect.q, &rslt), ShouldBeNil) |
| So(len(rslt), ShouldEqual, len(expect.get)) |
| for i, r := range rslt { |
| - So(r, ShouldResemble, expect.get[i]) |
| + So(r, ShouldResembleV, expect.get[i]) |
| } |
| return nil |
| }, &ds.TransactionOptions{XG: true}) |