| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- "use strict";
- if (!module.parent) return require.cache[__filename] = 0, (new(require("mocha"))()).addFile(__filename).ui("exports").run(process.exit);
- var assert = require("assert"),
- ConstantExpression = require("../../../../lib/pipeline/expressions/ConstantExpression"),
- VariablesIdGenerator = require("../../../../lib/pipeline/expressions/VariablesIdGenerator"),
- VariablesParseState = require("../../../../lib/pipeline/expressions/VariablesParseState"),
- DepsTracker = require("../../../../lib/pipeline/DepsTracker");
- exports.ConstantExpression = {
- ".constructor()": {
- "should accept one argument": function () {
- new ConstantExpression(5);
- },
- "should not accept 0 arguments": function () {
- assert.throws(function () {
- new ConstantExpression();
- });
- },
- "should not accept 2 arguments": function () {
- assert.throws(function () {
- new ConstantExpression(1, 2);
- });
- }
- },
- ".parse()": {
- "should create an expression from a json element": function testCreateFromBsonElement() {
- var idGenerator = new VariablesIdGenerator(),
- vps = new VariablesParseState(idGenerator),
- expression = ConstantExpression.parse("foo", vps);
- assert.deepEqual("foo", expression.evaluate({}));
- }
- },
- ".create()": {
- "should create an expression": function testCreate() {
- assert(ConstantExpression.create() instanceof ConstantExpression);
- }
- //SKIPPED: testCreateFronBsonElement
- },
- "#optimize()": {
- "should not optimize anything": function testOptimize() {
- var expr = new ConstantExpression(5);
- assert.strictEqual(expr, expr.optimize());
- }
- },
- "#addDependencies()": {
- "should return nothing": function testDependencies() {
- var expr = ConstantExpression.create(5),
- deps = new DepsTracker();
- expr.addDependencies(deps);
- assert.deepEqual(deps.fields, {});
- assert.strictEqual(deps.needWholeDocument, false);
- assert.strictEqual(deps.needTextScore, false);
- }
- },
- //TODO: AddToBsonObj
- //TODO: AddToBsonArray
- "#evaluate()": {
- "should do what comes natural with an int": function () {
- var c = 567;
- var expr = new ConstantExpression(c);
- assert.deepEqual(expr.evaluate(), c);
- },
- "should do what comes natural with a float": function () {
- var c = 567.123;
- var expr = new ConstantExpression(c);
- assert.deepEqual(expr.evaluate(), c);
- },
- "should do what comes natural with a String": function () {
- var c = "Quoth the raven";
- var expr = new ConstantExpression(c);
- assert.deepEqual(expr.evaluate(), c);
- },
- "should do what comes natural with a date": function () {
- var c = new Date();
- var expr = new ConstantExpression(c);
- assert.deepEqual(expr.evaluate(), c);
- }
- }
- };
|