it('should extract a buffer and preserve the remaining data in the buffer', () => { let expectedString = 'AJ'; let extraBuffer = new Buffer(expectedString); // declare the big buffer let buffer = new Buffer(k.OBCIPacketSize + extraBuffer.length); // Fill that new big buffer with buffers openBCIUtilities.samplePacketReal(0).copy(buffer, 0); extraBuffer.copy(buffer, k.OBCIPacketSize); // Reset the spy if it exists if (_processQualifiedPacketSpy) _processQualifiedPacketSpy.reset(); // Call the function under test buffer = ourBoard._processDataBuffer(buffer); // Ensure that we extracted only one buffer _processQualifiedPacketSpy.should.have.been.called(); // The buffer should have the epxected number of bytes left buffer.length.should.equal(expectedString.length); // Convert the buffer to a string and ensure that it equals the expected string buffer.toString().should.equal(expectedString); });
it('should be able to get multiple packets with junk in the middle and end', () => { let expectedString = ','; let extraBuffer = new Buffer(expectedString); // We are going to extract multiple buffers let expectedNumberOfBuffers = 2; // declare the big buffer let buffer = new Buffer(k.OBCIPacketSize * expectedNumberOfBuffers + extraBuffer.length * 2); // Fill that new big buffer with buffers openBCIUtilities.samplePacketReal(0).copy(buffer, 0); extraBuffer.copy(buffer, k.OBCIPacketSize); openBCIUtilities.samplePacketReal(1).copy(buffer, k.OBCIPacketSize + extraBuffer.byteLength); extraBuffer.copy(buffer, k.OBCIPacketSize * 2 + extraBuffer.byteLength); // Reset the spy if it exists if (_processQualifiedPacketSpy) _processQualifiedPacketSpy.reset(); // Call the function under test buffer = ourBoard._processDataBuffer(buffer); // Ensure that we extracted only one buffer _processQualifiedPacketSpy.should.have.been.calledTwice(); // The buffer should not have anything in it any more expect(bufferEqual(Buffer.concat([extraBuffer, extraBuffer], 2), buffer)).to.be.true(); buffer.length.should.equal(extraBuffer.length * 2); });
} else { var bufsymname = stringToBuffer(handle.symname) bufsymname.copy(buf,indexsynname,0,bufsymname.length) indexsynname+=bufsymname.length buf.writeUInt32LE(ADSIGRP.GET_SYMHANDLE_BYNAME,index+0)
it('should be able to get multiple packets and keep extra data on the end', () => { let expectedString = 'AJ'; let extraBuffer = new Buffer(expectedString); // We are going to extract multiple buffers let expectedNumberOfBuffers = 2; // declare the big buffer let buffer = new Buffer(k.OBCIPacketSize * expectedNumberOfBuffers + extraBuffer.length); // Fill that new big buffer with buffers openBCIUtilities.samplePacketReal(0).copy(buffer, 0); openBCIUtilities.samplePacketReal(1).copy(buffer, k.OBCIPacketSize); extraBuffer.copy(buffer, k.OBCIPacketSize * 2); // Reset the spy if it exists if (_processQualifiedPacketSpy) _processQualifiedPacketSpy.reset(); // Call the function under test buffer = ourBoard._processDataBuffer(buffer); // Ensure that we extracted only one buffer _processQualifiedPacketSpy.should.have.been.calledTwice(); // The buffer should not have anything in it any more buffer.length.should.equal(extraBuffer.length); });
it('should be able to get multiple packets with junk in the middle', () => { let expectedString = ','; let extraBuffer = new Buffer(expectedString); // We are going to extract multiple buffers let expectedNumberOfBuffers = 2; // declare the big buffer let buffer = new Buffer(k.OBCIPacketSize * expectedNumberOfBuffers + extraBuffer.length); // Fill that new big buffer with buffers openBCIUtilities.samplePacketReal(0).copy(buffer, 0); extraBuffer.copy(buffer, k.OBCIPacketSize); openBCIUtilities.samplePacketReal(1).copy(buffer, k.OBCIPacketSize + extraBuffer.byteLength); // Reset the spy if it exists if (_processQualifiedPacketSpy) _processQualifiedPacketSpy.reset(); // Call the function under test buffer = ourBoard._processDataBuffer(buffer); // Ensure that we extracted only one buffer _processQualifiedPacketSpy.should.have.been.calledTwice(); // The buffer should not have anything in it any more bufferEqual(extraBuffer, buffer).should.be.true(); buffer.length.should.equal(extraBuffer.length); });