AllElementsTrueExpression.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. "use strict";
  2. var assert = require("assert"),
  3. AllElementsTrueExpression = require("../../../../lib/pipeline/expressions/AllElementsTrueExpression"),
  4. Expression = require("../../../../lib/pipeline/expressions/Expression");
  5. var allElementsTrueExpression = new AllElementsTrueExpression();
  6. module.exports = {
  7. "AllElementsTrueExpression": {
  8. "constructor()": {
  9. "should not throw Error when constructing without args": function testConstructor() {
  10. assert.doesNotThrow(function() {
  11. new AllElementsTrueExpression();
  12. });
  13. }
  14. },
  15. "#getOpName()": {
  16. "should return the correct op name; $allElements": function testOpName() {
  17. assert.equal(new AllElementsTrueExpression().getOpName(), "$allElementsTrue");
  18. }
  19. },
  20. "#evaluateInternal()": {
  21. "should return error if parameter is empty:": function testEmpty() {
  22. assert.throws(function() {
  23. allElementsTrueExpression.evaluateInternal("asdf");
  24. });
  25. },
  26. "should return error if parameter is not an array": function testNonArray() {
  27. assert.throws(function() {
  28. allElementsTrueExpression.evaluateInternal("This is not an array");
  29. });
  30. },
  31. "should return false if first element is false; [false, true, true true]": function testFirstFalse() {
  32. assert.equal(allElementsTrueExpression.evaluateInternal(
  33. Expression.parseOperand({
  34. $allElementsTrue: [false, true, true, true]
  35. }).evaluate()), false);
  36. },
  37. "should return false if last element is false; [true, true, true, false]": function testLastFalse() {
  38. assert.equal(allElementsTrueExpression.evaluateInternal(
  39. Expression.parseOperand({
  40. $allElementsTrue: [true, true, true, false]
  41. }).evaluate()), false);
  42. },
  43. "should return true if all elements are true; [true,true,true,true]": function testAllTrue() {
  44. assert.equal(allElementsTrueExpression.evaluateInternal(
  45. Expression.parseOperand({
  46. $allElementsTrue: [true, true, true, true]
  47. }).evaluate()), true);
  48. },
  49. }
  50. }
  51. };
  52. if (!module.parent)(new(require("mocha"))()).ui("exports").reporter("spec").addFile(__filename).run(process.exit);