Skip to content

Commit

Permalink
fix(MockAmqp): process batch socket data
Browse files Browse the repository at this point in the history
The old mock amqp server fixture was not accounting for socket
data that was delivered in bulk, so it would only process a single
frame of the incoming data even if there were multiple frames
joined.
  • Loading branch information
mbroadst committed Oct 13, 2016
1 parent 8a28b87 commit 51c16b3
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 27 deletions.
34 changes: 10 additions & 24 deletions test/unit/link.test.js
Expand Up @@ -79,24 +79,17 @@ describe('Link', function() {
constants.amqpVersion,
new frames.OpenFrame(test.policy.connect.options),
new MockBeginFrame({}, 1),
new MockAttachFrame({handle: 0, role: constants.linkRole.sender},
1),
new MockDetachFrame({handle: 0, closed: true}, 1),
new MockAttachFrame({ handle: 0, role: constants.linkRole.sender }, 1),
new MockDetachFrame({ handle: 0, closed: true }, 1),
new MockEndFrame(null, 1),
new frames.CloseFrame()
],
[
constants.amqpVersion,
new frames.OpenFrame(test.policy.connect.options),
new MockBeginFrame({remoteChannel: 1}, 5),
new MockAttachFrame({handle: 3, role: constants.linkRole.receiver},
5),
new MockDetachFrame(
{
handle: 3,
closed: true,
},
5),
new MockBeginFrame({ remoteChannel: 1 }, 5),
new MockAttachFrame({ handle: 3, role: constants.linkRole.receiver }, 5),
new MockDetachFrame({ handle: 3, closed: true }, 5),
new MockEndFrame(null, 5),
new frames.CloseFrame()
]);
Expand Down Expand Up @@ -136,24 +129,17 @@ describe('Link', function() {
constants.amqpVersion,
new frames.OpenFrame(test.policy.connect.options),
new MockBeginFrame({}, 1),
new MockAttachFrame({handle: 0, role: constants.linkRole.sender},
1),
new MockDetachFrame({handle: 0, closed: false}, 1),
new MockAttachFrame({ handle: 0, role: constants.linkRole.sender }, 1),
new MockDetachFrame({ handle: 0, closed: false }, 1),
new MockEndFrame(null, 1),
new frames.CloseFrame()
],
[
constants.amqpVersion,
new frames.OpenFrame(test.policy.connect.options),
new MockBeginFrame({remoteChannel: 1}, 5),
new MockAttachFrame({handle: 3, role: constants.linkRole.receiver},
5),
new MockDetachFrame(
{
handle: 3,
closed: false,
},
5),
new MockBeginFrame({ remoteChannel: 1 }, 5),
new MockAttachFrame({ handle: 3, role: constants.linkRole.receiver }, 5),
new MockDetachFrame({ handle: 3, closed: false }, 5),
new MockEndFrame(null, 5),
new frames.CloseFrame()
]);
Expand Down
8 changes: 5 additions & 3 deletions test/unit/mock_amqp.js
Expand Up @@ -116,9 +116,11 @@ MockServer.prototype._sendUntil = function(toSend) {
};

MockServer.prototype._testData = function() {
expect(this.requestsExpected.length).to.be.greaterThan(0, 'More data received than expected');
var expected = this.requestsExpected[0];
if (this.buffer.length >= expected.length) {
while (this.buffer.length) {
expect(this.requestsExpected.length).to.be.greaterThan(0, 'More data received than expected');
var expected = this.requestsExpected[this.requestIdx];
if (this.buffer.length < expected.length) return;

expected = this.requestsExpected[this.requestIdx++];
var actual = this.buffer.slice(0, expected.length);
this.buffer.consume(expected.length);
Expand Down

0 comments on commit 51c16b3

Please sign in to comment.