1 | #!/usr/bin/env mocha -R spec
|
2 |
|
3 | var assert = require("assert");
|
4 | var Stream = require("stream");
|
5 |
|
6 | var msgpackJS = "../index";
|
7 | var isBrowser = ("undefined" !== typeof window);
|
8 | var msgpack = isBrowser && window.msgpack || require(msgpackJS);
|
9 | var TITLE = __filename.replace(/^.*\//, "") + ":";
|
10 |
|
11 | var src = [
|
12 | ["foo"],
|
13 | ["bar"],
|
14 | ["baz"]
|
15 | ];
|
16 |
|
17 | var encoded = [
|
18 | msgpack.encode(src[0]),
|
19 | msgpack.encode(src[1]),
|
20 | msgpack.encode(src[2])
|
21 | ];
|
22 |
|
23 | describe(TITLE, function() {
|
24 |
|
25 | it("msgpack.createEncodeStream()", function(done) {
|
26 | var count = 0;
|
27 | var encoder = msgpack.createEncodeStream();
|
28 |
|
29 | encoder.on("data", onData);
|
30 | encoder.write(src[0]);
|
31 | encoder.write(src[1]);
|
32 | encoder.write(src[2]);
|
33 | encoder.end();
|
34 |
|
35 | function onData(data) {
|
36 | assert.deepEqual(data, encoded[count++]);
|
37 | if (count === 3) done();
|
38 | }
|
39 | });
|
40 |
|
41 | it("msgpack.createDecodeStream()", function(done) {
|
42 | var count = 0;
|
43 | var decoder = msgpack.createDecodeStream();
|
44 |
|
45 | decoder.on("data", onData);
|
46 | decoder.write(encoded[0]);
|
47 | decoder.write(encoded[1]);
|
48 | decoder.write(encoded[2]);
|
49 | decoder.end();
|
50 |
|
51 | function onData(data) {
|
52 | assert.deepEqual(data, src[count++]);
|
53 | if (count === 3) done();
|
54 | }
|
55 | });
|
56 |
|
57 | it("pipe(encoder).pipe(decoder)", function(done) {
|
58 | var count = 0;
|
59 | var inputStream = new Stream.PassThrough({objectMode: true});
|
60 | var encoder = msgpack.createEncodeStream();
|
61 | var passThrough = new Stream.PassThrough();
|
62 | var decoder = msgpack.createDecodeStream();
|
63 | var outputStream = new Stream.PassThrough({objectMode: true});
|
64 |
|
65 | inputStream.pipe(encoder).pipe(passThrough).pipe(decoder).pipe(outputStream);
|
66 |
|
67 | outputStream.on("data", onData);
|
68 | inputStream.write(src[0]);
|
69 | inputStream.write(src[1]);
|
70 | inputStream.write(src[2]);
|
71 | inputStream.end();
|
72 |
|
73 | function onData(data) {
|
74 | assert.deepEqual(data, src[count++]);
|
75 | if (count === 3) done();
|
76 | }
|
77 | });
|
78 |
|
79 | it("pipe(decoder).pipe(encoder)", function(done) {
|
80 | var count = 0;
|
81 | var inputStream = new Stream.PassThrough();
|
82 | var decoder = msgpack.createDecodeStream();
|
83 | var passThrough = new Stream.PassThrough({objectMode: true});
|
84 | var encoder = msgpack.createEncodeStream();
|
85 | var outputStream = new Stream.PassThrough();
|
86 |
|
87 | inputStream.pipe(decoder).pipe(passThrough).pipe(encoder).pipe(outputStream);
|
88 |
|
89 | outputStream.on("data", onData);
|
90 | inputStream.write(encoded[0]);
|
91 | inputStream.write(encoded[1]);
|
92 | inputStream.write(encoded[2]);
|
93 | inputStream.end();
|
94 |
|
95 | function onData(data) {
|
96 | assert.deepEqual(data, encoded[count++]);
|
97 | if (count === 3) done();
|
98 | }
|
99 | });
|
100 | });
|