DayOfMonthExpression.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. "use strict";
  2. var assert = require("assert"),
  3. DayOfMonthExpression = require("../../../../lib/pipeline/expressions/DayOfMonthExpression"),
  4. Expression = require("../../../../lib/pipeline/expressions/Expression"),
  5. VariablesParseState = require("../../../../Lib/pipeline/expressions/VariablesParseState"),
  6. VariablesIdGenerator = require("../../../../Lib/pipeline/expressions/VariablesIdGenerator");
  7. module.exports = {
  8. "DayOfMonthExpression": {
  9. "constructor()": {
  10. "should throw Error when constructing without args": function testConstructor() {
  11. assert.throws(function() {
  12. new DayOfMonthExpression();
  13. });
  14. },
  15. "should not throw Error when constructing with an arg": function testConstructor() {
  16. assert.doesNotThrow(function() {
  17. new DayOfMonthExpression("1/1/2014");
  18. });
  19. }
  20. },
  21. "#getOpName()": {
  22. "should return the correct op name; $dayOfMonth": function testOpName() {
  23. assert.equal(new DayOfMonthExpression("1/1/2014").getOpName(), "$dayOfMonth");
  24. }
  25. },
  26. "#evaulateInternal1()": {
  27. "should return day of month; 10 for 2013-03-10": function testOpName() {
  28. assert.equal(new DayOfMonthExpression("2013-03-10T00:00:00.000Z").evaluateInternal(), "10");
  29. }
  30. },
  31. "#evaluateInternal2()": {
  32. "should return day of month; 18 for 2013-02-18": function testStuff() {
  33. var idGenerator = new VariablesIdGenerator();
  34. var vps = new VariablesParseState(idGenerator);
  35. var parseOp = Expression.parseOperand({
  36. $dayOfMonth: "$someDate"
  37. }, vps);
  38. var result = parseOp.evaluateInternal({
  39. $someDate: new Date("2013-02-18T00:00:00.000Z")
  40. });
  41. assert.strictEqual(result, "2");
  42. // assert.strictEqual(Expression.parseOperand({
  43. // $dayOfMonth: "$someDate"
  44. // }, vps).evaluate({
  45. // someDate: new Date("2013-02-18T00:00:00.000Z")
  46. // }), 18);
  47. }
  48. }
  49. }
  50. };
  51. if (!module.parent)(new(require("mocha"))()).ui("exports").reporter("spec").addFile(__filename).run(process.exit);