| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | 
							- "use strict";
 
- if (!module.parent) return require.cache[__filename] = 0, (new(require("mocha"))()).addFile(__filename).ui("exports").run(process.exit);
 
- var assert = require("assert"),
 
- 	MatchDetails = require("../../../lib/matcher/MatchDetails"),
 
- 	Matcher2 = require("../../../lib/matcher/Matcher2");
 
- exports.Matcher2 = {
 
- 	"Constructor": function Constructor() {
 
- 		new Matcher2({"a":1});
 
- 	},
 
- 	"Basic": function Basic() {
 
- 		var query = {"a":"b"},
 
- 			m = new Matcher2(query);
 
- 		assert(m.matches(query));
 
- 	},
 
- 	"DoubleEqual": function DoubleEqual() {
 
- 		var query = {"a":5},
 
- 			m = new Matcher2(query);
 
- 		assert(m.matches(query));
 
- 	},
 
- 	"MixedNumericEqual": function MixedNumericEqual() {	//not sure if we need this.  Same as DoubleEqual in munge
 
- 		var query = {"a":5},
 
- 			m = new Matcher2(query);
 
- 		assert(m.matches(query));
 
- 	},
 
- 	"MixedNumericGt": function MixedNumericGt() {
 
- 		var query = {"a":{"$gt":4}},
 
- 			m = new Matcher2(query);
 
- 		assert.ok(m.matches({"a":5}));
 
- 	},
 
- 	"MixedNumericIN": function MixedNumericIN() {
 
- 		var query = {"a":{"$in":[4,6]}},
 
- 			m = new Matcher2(query);
 
- 		assert.ok(m.matches({"a":4.0}));
 
- 		assert.ok(!m.matches({"a":5.0}));
 
- 		assert.ok(m.matches({"a":4}));
 
- 	},
 
- 	"MixedNumericEmbedded": function MixedNumericEmbedded() {
 
- 		var query = {"a":{"x":1}},
 
- 			m = new Matcher2(query);
 
- 		assert.ok(m.matches({"a":{"x":1}}));
 
- 		assert.ok(m.matches({"a":{"x":1.0}}));
 
- 	},
 
- 	"Size": function Size() {
 
- 		var query = {"a":{"$size":4}},
 
- 			m = new Matcher2(query);
 
- 		assert.ok(m.matches({"a":[1,2,3,4]}));
 
- 		assert.ok(!m.matches({"a":[1,2,3]}));
 
- 		assert.ok(!m.matches({"a":[1,2,3,"a","b"]}));
 
- 		assert.ok(!m.matches({"a":[[1,2,3,4]]}));
 
- 	},
 
- 	"WithinBox - mongo Geo function, not porting": function WithinBox() {},
 
- 	"WithinPolygon - mongo Geo function, not porting": function WithinPolygon() {},
 
- 	"WithinCenter - mongo Geo function, not porting": function WithinCenter() {},
 
- 	"ElemMatchKey": function ElemMatchKey() {
 
- 		var query = {"a.b":1},
 
- 			m = new Matcher2(query),
 
- 			md = new MatchDetails();
 
- 		md.requestElemMatchKey();
 
- 		assert.ok(!md.hasElemMatchKey());
 
- 		assert.ok(m.matches({"a":[{"b":1}]}, md));
 
- 		assert.ok(md.hasElemMatchKey());
 
- 		assert.equal("0", md.elemMatchKey());
 
- 	},
 
- 	"WhereSimple1 - mongo MapReduce function, not available ": function WhereSimple1() {
 
- 	},
 
- 	"AllTiming - mongo benchmarking function, not available": function AllTiming() {
 
- 	},
 
- };
 
 
  |