Document.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. "use strict";
  2. var assert = require("assert"),
  3. Document = require("../../../lib/pipeline/Document");
  4. module.exports = {
  5. "Document": {
  6. "compare 2 Documents": {
  7. "should return 0 if Documents are identical": function compareDocumentsIdentical() {
  8. var lDocument = new Object({"prop1": 0}),
  9. rDocument = new Object({"prop1": 0}),
  10. result = Document.compare(lDocument, rDocument);
  11. assert.equal(result, 0);
  12. },
  13. "should return -1 if left Document is shorter": function compareLeftDocumentShorter() {
  14. var lDocument = new Object({"prop1": 0}),
  15. rDocument = new Object({"prop1": 0, "prop2": 0}),
  16. result = Document.compare(lDocument, rDocument);
  17. assert.equal(result, -1);
  18. },
  19. "should return 1 if right Document is shorter": function compareRightDocumentShorter() {
  20. var lDocument = new Object({"prop1": 0, "prop2": 0}),
  21. rDocument = new Object({"prop1": 0}),
  22. result = Document.compare(lDocument, rDocument);
  23. assert.equal(result, 1);
  24. },
  25. "should return nameCmp result -1 if left Document field value is less": function compareLeftDocumentFieldLess() {
  26. var lDocument = new Object({"prop1": 0}),
  27. rDocument = new Object({"prop1": 1}),
  28. result = Document.compare(lDocument, rDocument);
  29. assert.equal(result, -1);
  30. },
  31. "should return nameCmp result 1 if right Document field value is less": function compareRightDocumentFieldLess() {
  32. var lDocument = new Object({"prop1": 1}),
  33. rDocument = new Object({"prop1": 0}),
  34. result = Document.compare(lDocument, rDocument);
  35. assert.equal(result, 1);
  36. }
  37. },
  38. "clone a Document": {
  39. "should return same field and value from cloned Document ": function clonedDocumentSingleFieldValue() {
  40. var doc = new Object({"prop1": 17}),
  41. res = Document.clone(doc);
  42. assert(res instanceof Object);
  43. assert.deepEqual(doc, res);
  44. assert.equal(res.prop1, 17);
  45. },
  46. "should return same fields and values from cloned Document ": function clonedDocumentMultiFieldValue() {
  47. var doc = new Object({"prop1": 17, "prop2": "a string"}),
  48. res = Document.clone(doc);
  49. assert.deepEqual(doc, res);
  50. assert(res instanceof Object);
  51. assert.equal(res.prop1, 17);
  52. assert.equal(res.prop2, "a string");
  53. }
  54. }
  55. }
  56. };
  57. if (!module.parent)(new(require("mocha"))()).ui("exports").reporter("spec").addFile(__filename).run();