| 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/pipeline/matcher/MatchDetails.js"),
- Matcher2 = require("../../../../lib/pipeline/matcher/Matcher2.js");
- module.exports = {
- "Matcher2": {
- "Constructor": function() {
- new Matcher2({"a":1});
- },
- "Basic": function() {
- var query = {"a":"b"},
- m = new Matcher2(query);
- assert(m.matches(query));
- },
- "DoubleEqual": function() {
- var query = {"a":5},
- m = new Matcher2(query);
- assert(m.matches(query));
- },
- "MixedNumericEqual": function() { //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() {
- var query = {"a":{"$gt":4}},
- m = new Matcher2(query);
- assert.ok(m.matches({"a":5}));
- },
- "MixedNumericIN": function() {
- 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() {
- 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() {
- 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() {},
- "WithinPolygon - mongo Geo function, not porting": function() {},
- "WithinCenter - mongo Geo function, not porting": function() {},
- "ElemMatchKey": function() {
- 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() {
- },
- "AllTiming - mongo benchmarking function, not available": function() {
- }
- }
- };
|