test.jsView |
---|
1 | | -var tape = require('tape') |
2 | | -var concat = require('.') |
3 | | -var pull = require('pull-stream') |
4 | | -var crypto = require('crypto') |
5 | | - |
6 | | -var emptyPack = new Buffer([0x50, 0x41, 0x43, 0x4b, 0, 0, 0, 2, 0, 0, 0, 0, |
7 | | - 0xda, 0x39, 0xa3, 0xee, 0x5e, 0x6b, 0x4b, 0x0d, 0x32, 0x55, |
8 | | - 0xbf, 0xef, 0x95, 0x60, 0x18, 0x90, 0xaf, 0xd8, 0x07, 0x09]) |
9 | | - |
10 | | -function readPack(numObjects, payload) { |
11 | | - var header = new Buffer([0x50, 0x41, 0x43, 0x4b, 0, 0, 0, 2, 0, 0, 0, 0]) |
12 | | - if (numObjects) header.writeUInt32BE(numObjects, 8) |
13 | | - var checksum = crypto.createHash('sha1') |
14 | | - if (!payload) payload = new Buffer([]) |
15 | | - checksum.update(payload) |
16 | | - return pull.values([header, payload, checksum.digest()]) |
17 | | -} |
18 | | - |
19 | | -function pack(n, p, numObjects) { |
20 | | - return {read: readPack(n, p), numObjects: numObjects} |
21 | | -} |
22 | | - |
23 | | -function pullEquals(a, b) { |
24 | | - return function (t) { |
25 | | - pull(a, pull.collect(function (err, bufsA) { |
26 | | - t.error(err, 'collect 1') |
27 | | - pull(b, pull.collect(function (err, bufsB) { |
28 | | - t.error(err, 'collect 2') |
29 | | - t.deepEquals(Buffer.concat(bufsA), Buffer.concat(bufsB), 'bufs') |
30 | | - t.end() |
31 | | - })) |
32 | | - })) |
33 | | - } |
34 | | -} |
35 | | - |
36 | | -tape('empty 0', pullEquals(concat([]), readPack())) |
37 | | -tape('empty 1', pullEquals(concat([pack()]), readPack())) |
38 | | -tape('empty 2', pullEquals(concat([pack(), pack()]), readPack())) |
39 | | - |
40 | | -tape('sum num objs', pullEquals(concat([pack(1), pack(3)]), readPack(4))) |
41 | | - |
42 | | -tape('sum num objs with property', |
43 | | - pullEquals(concat([pack(1, null, 1), pack(3)]), readPack(4))) |
44 | | - |
45 | | -tape('concat data', pullEquals( |
46 | | - concat([ |
47 | | - pack(0, new Buffer([5,4,3])), |
48 | | - pack(1, new Buffer([7,9])) |
49 | | - ]), |
50 | | - readPack(1, new Buffer([5,4,3,7,9])) |
51 | | -)) |