UNPKG

2.63 kBJavaScriptView Raw
1#!/usr/bin/env mocha -R spec
2
3var assert = require("assert");
4var Stream = require("stream");
5
6var msgpackJS = "../index";
7var isBrowser = ("undefined" !== typeof window);
8var msgpack = isBrowser && window.msgpack || require(msgpackJS);
9var TITLE = __filename.replace(/^.*\//, "") + ":";
10
11var src = [
12 ["foo"],
13 ["bar"],
14 ["baz"]
15];
16
17var encoded = [
18 msgpack.encode(src[0]),
19 msgpack.encode(src[1]),
20 msgpack.encode(src[2])
21];
22
23describe(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});