Added preconditions to pong message.

This commit is contained in:
Braydon Fuller 2015-04-01 11:52:35 -04:00
parent cf7d06baaa
commit 79674a2d7b
2 changed files with 32 additions and 0 deletions

View File

@ -4,6 +4,9 @@ var Message = require('../message');
var inherits = require('util').inherits;
var bitcore = require('bitcore');
var utils = require('../utils');
var $ = bitcore.util.preconditions;
var _ = bitcore.deps._;
var BufferUtil = bitcore.util.buffer;
var BufferReader = bitcore.encoding.BufferReader;
/**
@ -18,7 +21,14 @@ function PongMessage(arg, options) {
Message.call(this, arg, options);
this.command = 'pong';
this.magicNumber = options.magicNumber;
$.checkArgument(
_.isUndefined(arg) || (BufferUtil.isBuffer(arg) && arg.length === 8),
'First argument is expected to be an 8 byte buffer'
);
this.nonce = arg;
if (!this.nonce) {
this.nonce = utils.getNonce();
}
}
inherits(PongMessage, Message);

View File

@ -58,6 +58,28 @@ describe('Command Messages', function() {
});
describe('Pong', function() {
it('should error if nonce is not a buffer', function() {
(function() {
var message = messages.Pong('not a buffer');
}).should.throw('First argument is expected to be an 8 byte buffer');
});
it('should error if nonce buffer has invalid length', function() {
(function() {
var message = messages.Pong(new Buffer(Array(9)));
}).should.throw('First argument is expected to be an 8 byte buffer');
});
it('should set a nonce if not included', function() {
var message = messages.Pong();
should.exist(message.nonce);
message.nonce.length.should.equal(8);
});
});
describe('FilterLoad', function() {
it('should return a null payload', function() {