Advertisement
Guest User

mongodb

a guest
Jul 28th, 2015
298
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.44 KB | None | 0 0
  1. **testmongoapp/src/backend/index.js**
  2.  
  3. 'use strict';
  4.  
  5. var Percolator = require('percolator').Percolator;
  6. var dbSession = require('../../src/backend/dbSession.js');
  7.  
  8. var port = 8080;
  9. var server = Percolator({'port':port, 'autoLink':false});
  10.  
  11. server.route('/api/widgets',
  12. {
  13. GET: function(req, res) {
  14. var collection = dbSession.collection('widgets');
  15. collection.find().each(function(err, document) {
  16. if (document === null) {
  17. callback();
  18. } else {
  19. console.dir(document);
  20. res.collection(document).send();
  21. }
  22. });
  23. }
  24. }
  25. );
  26.  
  27. server.listen( function() {
  28. console.log('Server started and listening on port:',port);
  29. });
  30.  
  31. **testmongoapp/src/backend/dbSessionjs**
  32.  
  33. 'use strict';
  34.  
  35. var DBWrapper = require('mongodb').MongoClient;
  36. var dbWrapper = new DBWrapper;
  37. dbWrapper.connect("mongodb://localhost:27017/test", function(err, db) {
  38. if (!err) {
  39. console.log("Database connection successful");
  40. dbWrapper = db;
  41. }
  42. });
  43. module.exports = dbWrapper;
  44.  
  45. **testmongoapp/spec/resetDatabase.js**
  46. 'use strict';
  47.  
  48. var async = require('async');
  49.  
  50. var resetDatabase = function (dbSession, callback) {
  51. var collection = dbSession.collection('widgets');
  52. async.series(
  53. [
  54. function (callback) {
  55. collection.remove({}, function (err, numberRemoved) {
  56. callback(err);
  57. });
  58. }
  59. ],
  60.  
  61. function (err, results) {
  62. callback(err);
  63. }
  64. );
  65. };
  66. module.exports = resetDatabase;
  67.  
  68. **testmongoapp/spec/e2e/apiSpec.js**
  69.  
  70. 'use strict';
  71.  
  72. var request = require('request');
  73. var dbSession = require('../../src/backend/dbSession.js');
  74. var resetDatabase = require('../resetDatabase.js');
  75. var async = require('async');
  76.  
  77. describe('The API', function() {
  78.  
  79. it('should respond to a GET request at /api/widgets/', function(done) {
  80. var expected = {
  81. "_items": [
  82. { "name" : "widget1", "location" : "Canada", "ddn" : "a11", "hw_model" : "HPzl"},
  83. { "name" : "widget2", "location" : "Canada", "ddn" : "12a", "hw_model" : "HPzl"},
  84. { "name" : "widget3", "location" : "Canada", "ddn" : "98", "hw_model" : "HPzl"}
  85. ]
  86. };
  87.  
  88. async.series(
  89. [
  90.  
  91. function(callback) {
  92. resetDatabase(dbSession, callback);
  93. },
  94.  
  95. function(callback) {
  96. var collection = dbSession.collection('widgets');
  97. collection.insert(
  98. { "name" : "widget1", "location" : "Canada", "ddn" : "a11", "hw_model" : "HPzl"},{w:1},
  99. function(err) { callback(err)});
  100. },
  101.  
  102. function(callback) {
  103. var collection = dbSession.collection('widgets');
  104. collection.insert(
  105. { "name" : "widget2", "location" : "Canada", "ddn" : "12a", "hw_model" : "HPzl"},{w:1},
  106. function(err) {callback(err) });
  107. },
  108.  
  109. function(callback) {
  110. var collection = dbSession.collection('widgets');
  111. collection.insert(
  112. { "name" : "widget3", "location" : "Canada", "ddn" : "98", "hw_model" : "HPzl"},{w:1},
  113. function(err) {callback(err) });
  114. }
  115.  
  116. ],
  117.  
  118. function (err, results) {
  119. request.get(
  120. {
  121. 'url': 'http://localhost:8080/api/widgets/',
  122. 'json': true
  123. },
  124. function (err, res, body) {
  125. expect(res.statusCode).toBe(200);
  126. expect(body).toEqual(expected);
  127. done();
  128. }
  129. );
  130. }
  131. ); //end async.series
  132.  
  133. });
  134. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement