UNPKG

udp-stream

Version:

UDP header serialization object stream.

110 lines (85 loc) 2.84 kB
// Copyright (c) 2013, Benjamin J. Kelly ("Author") // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are met: // // 1. Redistributions of source code must retain the above copyright notice, this // list of conditions and the following disclaimer. // 2. Redistributions in binary form must reproduce the above copyright notice, // this list of conditions and the following disclaimer in the documentation // and/or other materials provided with the distribution. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR // ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 'use strict'; var UdpStream = require('../stream'); var UdpHeader = require('udp-header'); module.exports.writeBuffer = function(test) { test.expect(1); var udp = new UdpHeader({ srcPort: 123, dstPort: 456, dataLength: 50 }); var ustream = new UdpStream(); ustream.on('readable', function() { var msg = ustream.read(); test.deepEqual(udp, msg.udp); }); ustream.on('end', function() { test.done(); }); ustream.read(0); ustream.write(udp.toBuffer()); ustream.end(); }; module.exports.writeObject = function(test) { test.expect(1); var udp = new UdpHeader({ srcPort: 123, dstPort: 456, dataLength: 50 }); var ustream = new UdpStream(); ustream.on('readable', function() { var msg = ustream.read(); test.deepEqual(udp, msg.udp); }); ustream.on('end', function() { test.done(); }); ustream.read(0); ustream.write({ data: udp.toBuffer(), ip: { protocol: 'udp' } }); ustream.end(); }; module.exports.ignoreObject = function(test) { test.expect(1); var udp = new UdpHeader({ srcPort: 123, dstPort: 456, dataLength: 50 }); var msg = { data: udp.toBuffer(), ip: { protocol: 'tcp' } }; var ustream = new UdpStream(); ustream.on('ignored', function(error, ignored) { test.deepEqual(msg, ignored); }); ustream.on('end', function() { test.done(); }); ustream.read(0); ustream.write(msg); ustream.end(); };