/node_modules/mongodb/node_modules/bson/test/node/to_bson_test.js
https://bitbucket.org/gagginaspinnata/todo-app-with-angularjs · JavaScript · 109 lines · 71 code · 13 blank · 25 comment · 6 complexity · 47f9a3337649a2f7c2f0ef548a83490b MD5 · raw file
- var mongodb = process.env['TEST_NATIVE'] != null ? require('../../lib/bson').native() : require('../../lib/bson').pure();
- var testCase = require('nodeunit').testCase,
- mongoO = require('../../lib/bson').pure(),
- Buffer = require('buffer').Buffer,
- gleak = require('../../tools/gleak'),
- fs = require('fs'),
- BSON = mongoO.BSON,
- Code = mongoO.Code,
- Binary = mongoO.Binary,
- Timestamp = mongoO.Timestamp,
- Long = mongoO.Long,
- MongoReply = mongoO.MongoReply,
- ObjectID = mongoO.ObjectID,
- Symbol = mongoO.Symbol,
- DBRef = mongoO.DBRef,
- Double = mongoO.Double,
- MinKey = mongoO.MinKey,
- MaxKey = mongoO.MaxKey,
- BinaryParser = mongoO.BinaryParser;
- var BSONSE = mongodb,
- BSONDE = mongodb;
- // for tests
- BSONDE.BSON_BINARY_SUBTYPE_DEFAULT = 0;
- BSONDE.BSON_BINARY_SUBTYPE_FUNCTION = 1;
- BSONDE.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2;
- BSONDE.BSON_BINARY_SUBTYPE_UUID = 3;
- BSONDE.BSON_BINARY_SUBTYPE_MD5 = 4;
- BSONDE.BSON_BINARY_SUBTYPE_USER_DEFINED = 128;
- BSONSE.BSON_BINARY_SUBTYPE_DEFAULT = 0;
- BSONSE.BSON_BINARY_SUBTYPE_FUNCTION = 1;
- BSONSE.BSON_BINARY_SUBTYPE_BYTE_ARRAY = 2;
- BSONSE.BSON_BINARY_SUBTYPE_UUID = 3;
- BSONSE.BSON_BINARY_SUBTYPE_MD5 = 4;
- BSONSE.BSON_BINARY_SUBTYPE_USER_DEFINED = 128;
- var hexStringToBinary = function(string) {
- var numberofValues = string.length / 2;
- var array = "";
-
- for(var i = 0; i < numberofValues; i++) {
- array += String.fromCharCode(parseInt(string[i*2] + string[i*2 + 1], 16));
- }
- return array;
- }
- var assertBuffersEqual = function(test, buffer1, buffer2) {
- if(buffer1.length != buffer2.length) test.fail("Buffers do not have the same length", buffer1, buffer2);
-
- for(var i = 0; i < buffer1.length; i++) {
- test.equal(buffer1[i], buffer2[i]);
- }
- }
- /**
- * Retrieve the server information for the current
- * instance of the db client
- *
- * @ignore
- */
- exports.setUp = function(callback) {
- callback();
- }
- /**
- * Retrieve the server information for the current
- * instance of the db client
- *
- * @ignore
- */
- exports.tearDown = function(callback) {
- callback();
- }
- /**
- * @ignore
- */
- exports['Should correctly handle toBson function for an object'] = function(test) {
- // Test object
- var doc = {
- hello: new ObjectID(),
- a:1
- };
- // Add a toBson method to the object
- doc.toBSON = function() {
- return {b:1};
- }
-
- // Serialize the data
- var serialized_data = new BSONSE.BSON([Long, ObjectID, Binary, Code, DBRef, Symbol, Double, Timestamp, MaxKey, MinKey]).serialize(doc, false, true);
- var deserialized_doc = new BSONDE.BSON([Long, ObjectID, Binary, Code, DBRef, Symbol, Double, Timestamp, MaxKey, MinKey]).deserialize(serialized_data);
- test.deepEqual({b:1}, deserialized_doc);
- test.done();
- }
-
- /**
- * Retrieve the server information for the current
- * instance of the db client
- *
- * @ignore
- */
- exports.noGlobalsLeaked = function(test) {
- var leaks = gleak.detectNew();
- test.equal(0, leaks.length, "global var leak detected: " + leaks.join(', '));
- test.done();
- }