UNPKG

3.31 kBJavaScriptView Raw
1var MemoryStream = require('../index.js'),
2 should = require('should');
3
4var stream = require('stream'),
5 fs = require('fs');
6
7module.exports = {
8 "test MemoryStream only read" : function(beforeExit){
9 var loaded = false;
10
11 var memStream = new MemoryStream(['data1','data2'],{
12 writable : false
13 });
14
15 var data = '';
16 memStream.on('data',function(chunk){
17 data+=chunk;
18 });
19
20 memStream.on('end',function(){
21 data.should.be.eql('data1data2');
22 loaded = true;
23 });
24
25 beforeExit(function(){
26 loaded.should.be.true;
27 });
28 },
29
30 "test MemoryStream write/read" : function(beforeExit){
31 var memStream = new MemoryStream();
32
33 var data = '';
34 memStream.on('data',function(chunk){
35 data+=chunk;
36 });
37
38 memStream.on('end',function(){
39 data.should.be.eql('test1test2test3');
40 loaded = true;
41 });
42
43 memStream.write('test1');
44 setTimeout(function(){
45 memStream.write('test2');
46 memStream.end('test3');
47 },500);
48
49 beforeExit(function(){
50 loaded.should.be.true;
51 });
52 },
53
54 "test MemoryStream readable/writable" : function(beforeExit){
55 var memStream = new MemoryStream(['data'],{
56 writable : false
57 });
58 should.throws(function(){
59 memStream.write('test');
60 });
61
62 memStream = new MemoryStream('data',{
63 readable : false
64 });
65 var data = '';
66 memStream.on('data',function(chunk){
67 data += chunk;
68 });
69 memStream.write('test');
70
71 beforeExit(function(){
72 data.should.be.eql('');
73 });
74 },
75
76 "test MemoryStream buffering" : function(beforeExit){
77 var memStream = new MemoryStream();
78 memStream.readable = false;
79
80 memStream.write('data1');
81 memStream.write('data2');
82
83 beforeExit(function(){
84 memStream.setEncoding('utf8');
85 memStream.getAll().should.be.eql('data1data2');
86 });
87 },
88
89 "test MemoryStream pipe" : function(beforeExit){
90 var loaded = false;
91
92 var srcStream = new MemoryStream('data1');
93 var dstStream = new MemoryStream();
94
95 srcStream.pipe(dstStream);
96
97 var data = '';
98 dstStream.on('data',function(chunk){
99 data+=chunk;
100 });
101
102 dstStream.on('end',function(){
103 data.should.be.eql('data1data2data3');
104 loaded = true;
105 });
106
107 srcStream.write('data2');
108
109 setTimeout(function(){
110 srcStream.write('data3');
111 srcStream.end();
112 },500);
113
114 beforeExit(function(){
115 loaded.should.be.true;
116 });
117 },
118
119 "test MemoryStream bufsize" : function(beforeExit){
120 var memStream = new MemoryStream('data1',{
121 readable : false,
122 maxbufsize : 10
123 });
124
125 memStream.write('data2').should.be.true;
126 memStream.write('data3').should.be.false;
127 },
128
129 "test MemoryStream pause/resume" : function(beforeExit){
130 var memStream = new MemoryStream('data1');
131 memStream.pause();
132 var data = '';
133 memStream.on('data',function(chunk){
134 data += chunk;
135 });
136 memStream.write('data2');
137
138 setTimeout(function(){
139 data.should.be.eql('');
140 memStream.resume();
141 },500);
142
143 beforeExit(function(){
144 data.should.be.eql('data1data2');
145 });
146 },
147
148 "test MemoryStream setEncoding" : function(beforeExit){
149 var memStream = new MemoryStream('data');
150 memStream.on('data',function(chunk){
151 chunk.should.be.instanceof(Buffer);
152 });
153
154 var memStream2 = new MemoryStream('data');
155 memStream2.setEncoding('utf8');
156 memStream2.on('data',function(chunk){
157 chunk.should.be.a('string');
158 });
159 }
160};
\No newline at end of file