From 0fa6b585528135db2ab1ecf87a6d7f7837922666 Mon Sep 17 00:00:00 2001 From: Michael van Engelshoven Date: Tue, 23 Dec 2014 07:14:41 +0100 Subject: [PATCH] Change storing listener by numeric address representation Before `getRaw` was used to determine an array key for a group address. This method returns an array of bytes, which is transformed to a string when used as array key. `getNumber` returns an integer representation for the group address and feels more correct for a usage as an array key. --- src/Connection.js | 6 +++--- test/ConnectionTest.js | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Connection.js b/src/Connection.js index 8435bad..8d34cf3 100644 --- a/src/Connection.js +++ b/src/Connection.js @@ -49,7 +49,7 @@ function Connection(driver) { */ Connection.prototype._onWriteMessage = function(message) { - var rawAddress = message.getDestination().getRaw(), + var rawAddress = message.getDestination().getNumber(), callbacks = this._listeners[rawAddress]; if (callbacks) { @@ -115,7 +115,7 @@ Connection.prototype.send = function(msg, callback) { Connection.prototype.on = function (address, callback) { var driver = this._driver, listeners = this._listeners, - rawAddress = address.getRaw(); + rawAddress = address.getNumber(); if (!driver.isConnected()) { driver.connect(); @@ -134,7 +134,7 @@ Connection.prototype.on = function (address, callback) { */ Connection.prototype.off = function(address, callback) { var listeners = this._listeners, - rawAddress = address.getRaw(); + rawAddress = address.getNumber(); if (!callback) { listeners[rawAddress] = []; diff --git a/test/ConnectionTest.js b/test/ConnectionTest.js index 7cd08f3..42b6bdd 100644 --- a/test/ConnectionTest.js +++ b/test/ConnectionTest.js @@ -130,7 +130,7 @@ describe('Connection', function() { var driver = sinon.createStubInstance(Driver), address = sinon.createStubInstance(GroupAddress), msg = sinon.createStubInstance(Message), - rawAddress = [0x22, 0x9b], + numAddress = 2563, callback = sinon.spy(), connection; @@ -139,7 +139,7 @@ describe('Connection', function() { connection = new Connection(driver); - address.getRaw.returns(rawAddress); + address.getNumber.returns(numAddress); msg.getDestination.returns(address); msg.getCommand.returns('write'); @@ -155,7 +155,7 @@ describe('Connection', function() { var driver = sinon.createStubInstance(Driver), address = sinon.createStubInstance(GroupAddress), msg = sinon.createStubInstance(Message), - rawAddress = [0x22, 0x9b], + numAddress = 8859, callbackA = sinon.spy(), callbackB = sinon.spy(), connection; @@ -166,7 +166,7 @@ describe('Connection', function() { connection = new Connection(driver); - address.getRaw.returns(rawAddress); + address.getNumber.returns(numAddress); msg.getDestination.returns(address); connection.on(address, callbackA); @@ -193,11 +193,11 @@ describe('Connection', function() { this.createGroupAddress = function() { var address = sinon.createStubInstance(GroupAddress); - address.getRaw.returns([0x22, addressCounter++]); + address.getNumber.returns(addressCounter++); return address; - } + }; - }) + }); it("removes all listeners for a given address", function() { var callbackA = sinon.spy(), @@ -239,7 +239,7 @@ describe('Connection', function() { expect(callbackA).not.to.to.be.called; expect(callbackB).to.to.be.called; - }) + }); });