VariablesParseState_test.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. "use strict";
  2. var assert = require("assert"),
  3. Variables = require("../../../../lib/pipeline/expressions/Variables"),
  4. VariablesIdGenerator = require("../../../../lib/pipeline/expressions/VariablesIdGenerator"),
  5. VariablesParseState = require("../../../../lib/pipeline/expressions/VariablesParseState");
  6. module.exports = {
  7. "VariablesParseState": {
  8. "constructor": {
  9. "Should be able to construct": function canConstruct() {
  10. var idGen = new VariablesIdGenerator(),
  11. vps = new VariablesParseState(idGen);
  12. },
  13. "Should throw given invalid args": function throwsForArgs() {
  14. assert.throws(function() {
  15. var vps = new VariablesParseState();
  16. });
  17. assert.throws(function() {
  18. var vps = new VariablesParseState(1);
  19. });
  20. assert.throws(function() {
  21. var vps = new VariablesParseState('hi');
  22. });
  23. assert.throws(function() {
  24. var vps = new VariablesParseState({});
  25. });
  26. assert.throws(function() {
  27. var vps = new VariablesParseState([]);
  28. });
  29. assert.throws(function() {
  30. var vps = new VariablesParseState(new Date());
  31. });
  32. }
  33. },
  34. "#defineVariable": {
  35. "Cannot define ROOT variable": function noCanRootDef() {
  36. var idGen = new VariablesIdGenerator(),
  37. vps = new VariablesParseState(idGen);
  38. assert.throws(function() {
  39. vps.defineVariable('ROOT', 5);
  40. });
  41. },
  42. "Should return new ids": function returnsNewIds() {
  43. var idGen = new VariablesIdGenerator(),
  44. vps = new VariablesParseState(idGen),
  45. firstId = vps.defineVariable('hi', 'bye'),
  46. secondId = vps.defineVariable('bye', 'hi');
  47. assert.notEqual(firstId, secondId);
  48. }
  49. },
  50. "#getVariable": {
  51. "Can retrieve defined variables": function getVariable() {
  52. var idGen = new VariablesIdGenerator(),
  53. vps = new VariablesParseState(idGen),
  54. firstId = vps.defineVariable('hi', 'bye'),
  55. firstVariable = vps.getVariable('hi');
  56. assert.equal(firstVariable, firstId);
  57. },
  58. "Can retrieve root id": function getVariable() {
  59. var idGen = new VariablesIdGenerator(),
  60. vps = new VariablesParseState(idGen),
  61. firstVariable = vps.getVariable('ROOT');
  62. assert.equal(firstVariable, Variables.ROOT_ID);
  63. }
  64. }
  65. }
  66. };
  67. if (!module.parent)(new(require("mocha"))()).ui("exports").reporter("spec").addFile(__filename).run(process.exit);