浏览代码

refs #1004: Rolled back set<string> stuff from before. Fixed tiny bug in ObjectExpression test cases.

http://source.rd.rcg.local/trac/eagle6/changeset/1360/Eagle6_SVN
Jared Hall 12 年之前
父节点
当前提交
1faaa9cac0

+ 1 - 1
lib/pipeline/expressions/FieldPathExpression.js

@@ -75,7 +75,7 @@ var FieldPathExpression = module.exports = (function(){
 	};
 	};
 
 
 	proto.addDependencies = function addDependencies(deps){
 	proto.addDependencies = function addDependencies(deps){
-		deps[this.path.getPath()] = 1;
+		deps.push(this.path.getPath());
 		return deps;
 		return deps;
 	};
 	};
 
 

+ 1 - 4
lib/pipeline/expressions/ObjectExpression.js

@@ -100,10 +100,7 @@ var ObjectExpression = module.exports = (function(){
 				depsSet[pathStr + key] = 1;
 				depsSet[pathStr + key] = 1;
 			}
 			}
 		}
 		}
-		//Array.prototype.push.apply(deps, Object.getOwnPropertyNames(depsSet));
-		for(key in depsSet) {
-			deps[key] = 1;
-		}
+		Array.prototype.push.apply(deps, Object.getOwnPropertyNames(depsSet));
 		return deps;	// NOTE: added to munge as a convenience
 		return deps;	// NOTE: added to munge as a convenience
 	};
 	};
 
 

+ 8 - 8
test/lib/pipeline/documentSources/ProjectDocumentSource.js

@@ -204,14 +204,14 @@ module.exports = {
                 var cwc = new CursorDocumentSource.CursorWithContext();
                 var cwc = new CursorDocumentSource.CursorWithContext();
                 var input = {a:true,x:'$b',y:{$and:['$c','$d']}};
                 var input = {a:true,x:'$b',y:{$and:['$c','$d']}};
                 var pds = createProject(input);
                 var pds = createProject(input);
-                var dependencies = {};
-                assert.equal(DocumentSource.GetDepsReturn.EXHAUSTIVE, pds.getDependencies(dependencies));
-                assert.equal(5, Object.keys(dependencies).length);
-                assert.ok(dependencies._id);
-                assert.ok(dependencies.a);
-                assert.ok(dependencies.b);
-                assert.ok(dependencies.c);
-                assert.ok(dependencies.d);
+                var deps = [];
+                assert.equal(DocumentSource.GetDepsReturn.EXHAUSTIVE, pds.getDependencies(deps));
+                assert.equal(5, deps.length);
+                assert.equal(1, deps.filter(function(val) { return "_id" == val; }).length);
+                assert.equal(1, deps.filter(function(val) { return "a" == val; }).length);
+                assert.equal(1, deps.filter(function(val) { return "b" == val; }).length);
+                assert.equal(1, deps.filter(function(val) { return "c" == val; }).length);
+                assert.equal(1, deps.filter(function(val) { return "d" == val; }).length);
             }
             }
 
 
         }
         }

+ 4 - 4
test/lib/pipeline/documentSources/SortDocumentSource.js

@@ -334,11 +334,11 @@ module.exports = {
 				var sds = new SortDocumentSource();
 				var sds = new SortDocumentSource();
 				sds.addKey("a", true);
 				sds.addKey("a", true);
 				sds.addKey("b.c", false);
 				sds.addKey("b.c", false);
-				var deps = {};
+				var deps = [];
 				assert.equal("SEE_NEXT", sds.getDependencies(deps));
 				assert.equal("SEE_NEXT", sds.getDependencies(deps));
-				assert.equal(2, Object.keys(deps).length);
-				assert.ok(deps.a);
-				assert.ok(deps["b.c"]);
+				assert.equal(2, deps.length);
+				assert.equal(1, deps.filter(function(val) { return "a" == val; }).length);
+				assert.equal(1, deps.filter(function(val) { return "a" == val; }).length);
 			}
 			}
 		}
 		}
 
 

+ 3 - 3
test/lib/pipeline/expressions/CoerceToBoolExpression.js

@@ -35,9 +35,9 @@ module.exports = {
 
 
 			"should forward dependencies of nested expression": function testDependencies(){
 			"should forward dependencies of nested expression": function testDependencies(){
 				var expr = new CoerceToBoolExpression(new FieldPathExpression('a.b')),
 				var expr = new CoerceToBoolExpression(new FieldPathExpression('a.b')),
-					deps = expr.addDependencies({});
-				assert.equal(Object.keys(deps).length, 1);
-				assert.ok(deps['a.b']);
+					deps = expr.addDependencies([]);
+				assert.equal(deps.length, 1);
+				assert.equal(deps[0], 'a.b');
 			}
 			}
 
 
 		},
 		},

+ 3 - 5
test/lib/pipeline/expressions/FieldPathExpression.js

@@ -107,11 +107,9 @@ module.exports = {
 		"#addDependencies()": {
 		"#addDependencies()": {
 
 
 			"should return the field path itself as a dependency": function testDependencies(){
 			"should return the field path itself as a dependency": function testDependencies(){
-				var deps = {};
-				var fpe = new FieldPathExpression('a.b');
-				fpe.addDependencies(deps);
-				assert.strictEqual(Object.keys(deps).length, 1);
-				assert.ok(deps['a.b']);
+				var deps = new FieldPathExpression('a.b').addDependencies([]);
+				assert.strictEqual(deps.length, 1);
+				assert.strictEqual(deps[0], 'a.b');
 			}
 			}
 
 
 		},
 		},

+ 3 - 3
test/lib/pipeline/expressions/FieldRangeExpression.js

@@ -117,9 +117,9 @@ module.exports = {
 		"#addDependencies()": {
 		"#addDependencies()": {
 
 
 			"should return the range's path as a dependency": function testDependencies(){
 			"should return the range's path as a dependency": function testDependencies(){
-				var deps = new FieldRangeExpression(new FieldPathExpression("a.b.c"), "$eq", 0).addDependencies({});
-				assert.strictEqual(Object.keys(deps).length, 1);
-				assert.ok(deps['a.b.c']);
+				var deps = new FieldRangeExpression(new FieldPathExpression("a.b.c"), "$eq", 0).addDependencies([]);
+				assert.strictEqual(deps.length, 1);
+				assert.strictEqual(deps[0], "a.b.c");
 			}
 			}
 
 
 		},
 		},

+ 44 - 39
test/lib/pipeline/expressions/ObjectExpression.js

@@ -6,8 +6,13 @@ var assert = require("assert"),
 
 
 
 
 function assertEqualJson(actual, expected, message){
 function assertEqualJson(actual, expected, message){
-	//assert.strictEqual(message + ":  " + JSON.stringify(actual), message + ":  " + JSON.stringify(expected));
-	assert.deepEqual(actual, expected, message);
+	if(actual.sort) {
+		actual.sort();
+		if(expected.sort) {
+			expected.sort();
+		}
+	}
+	assert.strictEqual(message + ":  " + JSON.stringify(actual), message + ":  " + JSON.stringify(expected));
 }
 }
 
 
 /// An assertion for `ObjectExpression` instances based on Mongo's `ExpectedResultBase` class
 /// An assertion for `ObjectExpression` instances based on Mongo's `ExpectedResultBase` class
@@ -26,8 +31,8 @@ function assertExpectedResult(args) {
 	// run implementation
 	// run implementation
 	var result = args.expression.addToDocument({}, args.source, args.source);
 	var result = args.expression.addToDocument({}, args.source, args.source);
 	assertEqualJson(result, args.expected, "unexpected results");
 	assertEqualJson(result, args.expected, "unexpected results");
-	var dependencies = args.expression.addDependencies({}, [/*FAKING: includePath=true*/]);
-	//dependencies.sort(), args.expectedDependencies.sort();	// NOTE: this is a minor hack added for munge because I'm pretty sure order doesn't matter for this anyhow
+	var dependencies = args.expression.addDependencies([], [/*FAKING: includePath=true*/]);
+	dependencies.sort(), args.expectedDependencies.sort();	// NOTE: this is a minor hack added for munge because I'm pretty sure order doesn't matter for this anyhow
 	assertEqualJson(dependencies, args.expectedDependencies, "unexpected dependencies");
 	assertEqualJson(dependencies, args.expectedDependencies, "unexpected dependencies");
 	assertEqualJson(args.expression.toJson(true), args.expectedJsonRepresentation, "unexpected JSON representation");
 	assertEqualJson(args.expression.toJson(true), args.expectedJsonRepresentation, "unexpected JSON representation");
 	assertEqualJson(args.expression.getIsSimple(), args.expectedIsSimple, "unexpected isSimple status");
 	assertEqualJson(args.expression.getIsSimple(), args.expectedIsSimple, "unexpected isSimple status");
@@ -54,20 +59,20 @@ module.exports = {
 				/** Dependencies for non inclusion expressions. */
 				/** Dependencies for non inclusion expressions. */
 				var expr = new ObjectExpression();
 				var expr = new ObjectExpression();
 				expr.addField("a", new ConstantExpression(5));
 				expr.addField("a", new ConstantExpression(5));
-				assertEqualJson(expr.addDependencies({}, [/*FAKING: includePath=true*/]), {"_id":1}, "unexpected dependencies (including _id)");
-				assertEqualJson(expr.addDependencies({}), {}, "unexpected dependencies (excluding _id)");
+				assertEqualJson(expr.addDependencies([], [/*FAKING: includePath=true*/]), ["_id"], "unexpected dependencies (including _id)");
+				assertEqualJson(expr.addDependencies([]), [], "unexpected dependencies (excluding _id)");
 				expr.addField("b", new FieldPathExpression("c.d"));
 				expr.addField("b", new FieldPathExpression("c.d"));
-				assertEqualJson(expr.addDependencies({}, [/*FAKING: includePath=true*/]), {"c.d":1, "_id":1}, "unexpected dependencies (including _id)");
-				assertEqualJson(expr.addDependencies({}), {"c.d":1}, "unexpected dependencies (excluding _id)");
+				assertEqualJson(expr.addDependencies([], [/*FAKING: includePath=true*/]), ["c.d", "_id"], "unexpected dependencies (including _id)");
+				assertEqualJson(expr.addDependencies([]), ["c.d"], "unexpected dependencies (excluding _id)");
 			},
 			},
 
 
 			"should be able to get dependencies for inclusion expressions": function testInclusionDependencies(){
 			"should be able to get dependencies for inclusion expressions": function testInclusionDependencies(){
 				/** Dependencies for inclusion expressions. */
 				/** Dependencies for inclusion expressions. */
 				var expr = new ObjectExpression();
 				var expr = new ObjectExpression();
 				expr.includePath( "a" );
 				expr.includePath( "a" );
-				assertEqualJson(expr.addDependencies({}, [/*FAKING: includePath=true*/]), {"_id":1, "a":1}, "unexpected dependencies (including _id)");
+				assertEqualJson(expr.addDependencies([], [/*FAKING: includePath=true*/]), ["_id", "a"], "unexpected dependencies (including _id)");
 				assert.throws(function(){
 				assert.throws(function(){
-					expr.addDependencies({});
+					expr.addDependencies([]);
 				}, Error);
 				}, Error);
 			},
 			},
 
 
@@ -108,7 +113,7 @@ module.exports = {
 				assertExpectedResult({
 				assertExpectedResult({
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0},
 					expected: {"_id":0},
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {},
 					expectedJsonRepresentation: {},
 				});
 				});
 			},
 			},
@@ -120,7 +125,7 @@ module.exports = {
 				assertExpectedResult({
 				assertExpectedResult({
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":1},
 					expected: {"_id":0, "a":1},
-					expectedDependencies: {"_id":1, "a":1},
+					expectedDependencies: ["_id", "a"],
 					expectedJsonRepresentation: {"a":true},
 					expectedJsonRepresentation: {"a":true},
 				});
 				});
 			},
 			},
@@ -133,7 +138,7 @@ module.exports = {
 					source: {"_id":0, "b":2},
 					source: {"_id":0, "b":2},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0},
 					expected: {"_id":0},
-					expectedDependencies: {"_id":1, "a":1},
+					expectedDependencies: ["_id", "a"],
 					expectedJsonRepresentation: {"a":true},
 					expectedJsonRepresentation: {"a":true},
 				});
 				});
 			},
 			},
@@ -145,7 +150,7 @@ module.exports = {
 				assertExpectedResult({
 				assertExpectedResult({
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0},
 					expected: {"_id":0},
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {"_id":true},
 					expectedJsonRepresentation: {"_id":true},
 				});
 				});
 			},
 			},
@@ -158,7 +163,7 @@ module.exports = {
 				assertExpectedResult({
 				assertExpectedResult({
 					expression: expr,
 					expression: expr,
 					expected: {"b":2},
 					expected: {"b":2},
-					expectedDependencies: {"b":1},
+					expectedDependencies: ["b"],
 					expectedJsonRepresentation: {"_id":false, "b":true},
 					expectedJsonRepresentation: {"_id":false, "b":true},
 				});
 				});
 			},
 			},
@@ -171,7 +176,7 @@ module.exports = {
 				assertExpectedResult({
 				assertExpectedResult({
 					expression: expr,
 					expression: expr,
 					get expected() { return this.source; },
 					get expected() { return this.source; },
-					expectedDependencies: {"_id":1, "a":1, "b":1},
+					expectedDependencies: ["_id", "a", "b"],
 					expectedJsonRepresentation: {"b":true, "a":true},
 					expectedJsonRepresentation: {"b":true, "a":true},
 				});
 				});
 			},
 			},
@@ -184,7 +189,7 @@ module.exports = {
 					source: {"_id":0, "a":{ "b":5, "c":6}, "z":2 },
 					source: {"_id":0, "a":{ "b":5, "c":6}, "z":2 },
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{ "b":5} },
 					expected: {"_id":0, "a":{ "b":5} },
-					expectedDependencies: {"_id":1, "a.b":1},
+					expectedDependencies: ["_id", "a.b"],
 					expectedJsonRepresentation: {"a":{ "b":true} },
 					expectedJsonRepresentation: {"a":{ "b":true} },
 				});
 				});
 			},
 			},
@@ -198,7 +203,7 @@ module.exports = {
 					source: {"_id":0, "a":{ "b":5, "c":6}, "z":2 },
 					source: {"_id":0, "a":{ "b":5, "c":6}, "z":2 },
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{ "b":5, "c":6} },
 					expected: {"_id":0, "a":{ "b":5, "c":6} },
-					expectedDependencies: {"_id":1, "a.b":1, "a.c":1},
+					expectedDependencies: ["_id", "a.b", "a.c"],
 					expectedJsonRepresentation: {"a":{ "b":true, "c":true} },
 					expectedJsonRepresentation: {"a":{ "b":true, "c":true} },
 				});
 				});
 			},
 			},
@@ -212,7 +217,7 @@ module.exports = {
 					source: {"_id":0, "a":{ "b":5 }, "c":{"d":6} },
 					source: {"_id":0, "a":{ "b":5 }, "c":{"d":6} },
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{ "b":5}, "c":{"d":6} },
 					expected: {"_id":0, "a":{ "b":5}, "c":{"d":6} },
-					expectedDependencies: {"_id":1, "a.b":1, "c.d":1},
+					expectedDependencies: ["_id", "a.b", "c.d"],
 					expectedJsonRepresentation: {"a":{"b":true}, "c":{"d":true} }
 					expectedJsonRepresentation: {"a":{"b":true}, "c":{"d":true} }
 				});
 				});
 			},
 			},
@@ -225,7 +230,7 @@ module.exports = {
 					source: {"_id":0, "a":{ "c":6}, "z":2 },
 					source: {"_id":0, "a":{ "c":6}, "z":2 },
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{} },
 					expected: {"_id":0, "a":{} },
-					expectedDependencies: {"_id":1, "a.b":1},
+					expectedDependencies: ["_id", "a.b"],
 					expectedJsonRepresentation: {"a":{ "b":true} },
 					expectedJsonRepresentation: {"a":{ "b":true} },
 				});
 				});
 			},
 			},
@@ -238,7 +243,7 @@ module.exports = {
 					source: {"_id":0, "a":2, "z":2},
 					source: {"_id":0, "a":2, "z":2},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0},
 					expected: {"_id":0},
-					expectedDependencies: {"_id":1, "a.b":1},
+					expectedDependencies: ["_id", "a.b"],
 					expectedJsonRepresentation: {"a":{ "b":true} },
 					expectedJsonRepresentation: {"a":{ "b":true} },
 				});
 				});
 			},
 			},
@@ -251,7 +256,7 @@ module.exports = {
 					source: {_id:0,a:[{b:5,c:6},{b:2,c:9},{c:7},[],2],z:1},
 					source: {_id:0,a:[{b:5,c:6},{b:2,c:9},{c:7},[],2],z:1},
 					expression: expr,
 					expression: expr,
 					expected: {_id:0,a:[{b:5},{b:2},{}]},
 					expected: {_id:0,a:[{b:5},{b:2},{}]},
-					expectedDependencies: {"_id":1, "a.b":1},
+					expectedDependencies: ["_id", "a.b"],
 					expectedJsonRepresentation: {"a":{ "b":true} },
 					expectedJsonRepresentation: {"a":{ "b":true} },
 				});
 				});
 			},
 			},
@@ -264,7 +269,7 @@ module.exports = {
 					source: {"_id":0, "a":{ "_id":1, "b":1} },
 					source: {"_id":0, "a":{ "_id":1, "b":1} },
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{ "b":1} },
 					expected: {"_id":0, "a":{ "b":1} },
-					expectedDependencies: {"_id":1, "a.b":1},
+					expectedDependencies: ["_id", "a.b"],
 					expectedJsonRepresentation: {"a":{ "b":true} },
 					expectedJsonRepresentation: {"a":{ "b":true} },
 				});
 				});
 			},
 			},
@@ -277,7 +282,7 @@ module.exports = {
 					source: {"_id":0},
 					source: {"_id":0},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":5},
 					expected: {"_id":0, "a":5},
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {"a":{ "$const":5} },
 					expectedJsonRepresentation: {"a":{ "$const":5} },
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -291,7 +296,7 @@ module.exports = {
 					source: {"_id":0, "a":99},
 					source: {"_id":0, "a":99},
 					expression: expr,
 					expression: expr,
 					expected: {"_id": 0, "a": 5},
 					expected: {"_id": 0, "a": 5},
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {"a": {"$const": 5}},
 					expectedJsonRepresentation: {"a": {"$const": 5}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -305,7 +310,7 @@ module.exports = {
 					source: {"_id":0},
 					source: {"_id":0},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0},
 					expected: {"_id":0},
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {a:{$const:undefined}},
 					expectedJsonRepresentation: {a:{$const:undefined}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -319,7 +324,7 @@ module.exports = {
 					source: {"_id":0, "a":99},
 					source: {"_id":0, "a":99},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":5},
 					expected: {"_id":0, "a":5},
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {"a":{"$const":5}},
 					expectedJsonRepresentation: {"a":{"$const":5}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -333,7 +338,7 @@ module.exports = {
 					source: {"_id":0},
 					source: {"_id":0},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":null},
 					expected: {"_id":0, "a":null},
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {"a":{"$const":null}},
 					expectedJsonRepresentation: {"a":{"$const":null}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -347,7 +352,7 @@ module.exports = {
 					source: {"_id":0},
 					source: {"_id":0},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{"b":5}},
 					expected: {"_id":0, "a":{"b":5}},
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {"a":{"b":{"$const":5}}},
 					expectedJsonRepresentation: {"a":{"b":{"$const":5}}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -361,7 +366,7 @@ module.exports = {
 					source: {"_id":0, "x":4},
 					source: {"_id":0, "x":4},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":4},
 					expected: {"_id":0, "a":4},
-					expectedDependencies: {"_id":1, "x":1},
+					expectedDependencies: ["_id", "x"],
 					expectedJsonRepresentation: {"a":"$x"},
 					expectedJsonRepresentation: {"a":"$x"},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -375,7 +380,7 @@ module.exports = {
 					source: {"_id":0, "x":{"y":4}},
 					source: {"_id":0, "x":{"y":4}},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{"b":4}},
 					expected: {"_id":0, "a":{"b":4}},
-					expectedDependencies: {"_id":1, "x.y":1},
+					expectedDependencies: ["_id", "x.y"],
 					expectedJsonRepresentation: {"a":{"b":"$x.y"}},
 					expectedJsonRepresentation: {"a":{"b":"$x.y"}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -392,7 +397,7 @@ module.exports = {
 					source: {"_id":0},
 					source: {"_id":0},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0},
 					expected: {"_id":0},
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {a:{b:{$const:undefined}}},
 					expectedJsonRepresentation: {a:{b:{$const:undefined}}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -409,7 +414,7 @@ module.exports = {
 					source: {"_id":0},
 					source: {"_id":0},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{ "b":6} },
 					expected: {"_id":0, "a":{ "b":6} },
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {a:{b:{$const:6}}},
 					expectedJsonRepresentation: {a:{b:{$const:6}}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -424,7 +429,7 @@ module.exports = {
 					source: {"_id":0},
 					source: {"_id":0},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{ "b":6, "c":7} },
 					expected: {"_id":0, "a":{ "b":6, "c":7} },
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {a:{b:{$const:6},c:{$const:7}}},
 					expectedJsonRepresentation: {a:{b:{$const:6},c:{$const:7}}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -441,7 +446,7 @@ module.exports = {
 					source: {"_id":0},
 					source: {"_id":0},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{ "b":6, "c":7} },
 					expected: {"_id":0, "a":{ "b":6, "c":7} },
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {a:{b:{$const:6},c:{$const:7}}},
 					expectedJsonRepresentation: {a:{b:{$const:6},c:{$const:7}}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -458,7 +463,7 @@ module.exports = {
 					source: {"_id":0},
 					source: {"_id":0},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{ "b":6, "c":7} },
 					expected: {"_id":0, "a":{ "b":6, "c":7} },
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {a:{b:{$const:6},c:{$const:7}}},
 					expectedJsonRepresentation: {a:{b:{$const:6},c:{$const:7}}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -477,7 +482,7 @@ module.exports = {
 					source: {"_id":0},
 					source: {"_id":0},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{ "b":6, "c":7} },
 					expected: {"_id":0, "a":{ "b":6, "c":7} },
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {a:{b:{$const:6},c:{$const:7}}},
 					expectedJsonRepresentation: {a:{b:{$const:6},c:{$const:7}}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -496,7 +501,7 @@ module.exports = {
 					source: {"_id":0},
 					source: {"_id":0},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{ "b":6, "d":7, "c":8} },
 					expected: {"_id":0, "a":{ "b":6, "d":7, "c":8} },
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {a:{b:{$const:6},d:{$const:7},c:{$const:8}}},
 					expectedJsonRepresentation: {a:{b:{$const:6},d:{$const:7},c:{$const:8}}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});
@@ -515,7 +520,7 @@ module.exports = {
 					source: {"_id":0},
 					source: {"_id":0},
 					expression: expr,
 					expression: expr,
 					expected: {"_id":0, "a":{ "b":{ "c":6, "d":7}}},
 					expected: {"_id":0, "a":{ "b":{ "c":6, "d":7}}},
-					expectedDependencies: {"_id":1},
+					expectedDependencies: ["_id"],
 					expectedJsonRepresentation: {a:{b:{c:{$const:6},d:{$const:7}}}},
 					expectedJsonRepresentation: {a:{b:{c:{$const:6},d:{$const:7}}}},
 					expectedIsSimple: false
 					expectedIsSimple: false
 				});
 				});