domotz-remote-pawn
Version:
Domotz Agent
89 lines (70 loc) • 1.93 kB
JavaScript
var should = require('should');
var jayson = require('./../../');
var fs = require('fs');
exports.Counter = require('./counter');
exports.server = {};
exports.server.keys = {
ca: [fs.readFileSync(__dirname + '/../fixtures/keys/ca1-cert.pem')],
key: fs.readFileSync(__dirname + '/../fixtures/keys/agent1-key.pem'),
cert: fs.readFileSync(__dirname + '/../fixtures/keys/agent1-cert.pem')
};
/*
* Methods for the common test server
*/
exports.server.methods = {
error: function(callback) {
callback(this.error(-1000, 'An error message'));
},
incrementCounterBy: function(counter, value, callback) {
if(!(counter instanceof exports.Counter)) {
return callback(this.error(-1000, 'Argument not an instance of Counter'));
}
counter.incrementBy(value);
callback(null, counter);
},
add: function(a, b, callback) {
var result = a + b;
callback(null, result);
},
add_slow: function(a, b, isSlow, callback) {
var result = a + b;
if(!isSlow) return callback(null, result);
setTimeout(function() {
callback(null, result);
}, 15);
},
empty: function(arg, callback) {
callback();
},
no_args: function(callback) {
callback(null, true);
},
invalidError: function(arg, callback) {
callback({invalid: true});
},
delay: function(delay, callback) {
setTimeout(function() {
callback(null, delay);
}, delay);
}
};
/*
* Options for the common test server
*/
exports.server.options = {
reviver: function(key, value) {
if(value && value.$class === 'counter') {
var obj = new exports.Counter();
for(var prop in value.$props) obj[prop] = value.$props[prop];
return obj;
}
return value;
},
replacer: function(key, value) {
if(value instanceof exports.Counter) {
return {$class: 'counter', $props: {count: value.count}};
}
return value;
},
collect: false
};