websoket/node_modules/streamers/test/proactive_read_stream_test.js
developertrinidad08 7e6cf29479 first commit
2023-01-16 18:11:14 -03:00

178 lines
5.7 KiB
JavaScript

var vows = require("vows");
var assert = require("assert");
var index = require("../index");
vows.describe("Proactor Read Operations").addBatch({
"ProactiveReadStream Test":{
"Read Number of Bytes":{
topic: function(){
var callback = this.callback;
var source = new index.BufferReadStream(new Buffer("jibberish"), {chunkSize: 4});
var reader = new index.ProactiveReadStream(source);
function firstRead(){
reader.read(2, function(data, error){
if(data){
if(data.toString() == "ji"){
secondRead();
}
else{
callback("first read returned wrong data");
}
}
else{
callback(error);
}
});
}
function secondRead(){
reader.read(4, function(data, error){
if(data){
if(data.toString() == "bber"){
thirdRead();
}
else{
callback("second read returned wrong data");
}
}
else{
callback(error);
}
});
}
function thirdRead(){
reader.read(3, function(data, error){
if(data){
if(data.toString() == "ish"){
callback();
}
else{
callback("third read returned wrong data");
}
}
else{
callback(error);
}
});
}
firstRead();
},
"finish": function(){}
}
},
"Read Until":{
topic:function(){
var callback = this.callback;
var source = new index.BufferReadStream(new Buffer("line 1\nline 2\n"));
var reader = new index.ProactiveReadStream(source);
function readFirstLine(){
reader.read("\n", function(data, error){
if(data){
if(data.toString() == "line 1\n"){
readSecondLine();
}
else{
callback("first read returned wrong data");
}
}
else{
callback(error);
}
});
}
function readSecondLine(){
reader.read("\n", function(data, error){
if(data){
if(data.toString() == "line 2\n"){
callback();
}
else{
callback("second read returned wrong data");
}
}
else{
callback(error);
}
});
}
readFirstLine();
},
"finish": function(){}
},
"Read soon as possible":{
topic:function(){
var callback = this.callback;
var source = new index.BufferReadStream(new Buffer("jibberish"), {chunkSize:4});
var reader = new index.ProactiveReadStream(source);
function readFirstChunk(){
reader.read(null, function(data, error){
if(data){
if(data == "jibb"){
readSecondChunk();
}
else{
callback("first read returned wrong data");
}
}
else{
callback(error);
}
});
}
function readSecondChunk(){
reader.read(null, function(data, error){
if(data){
if(data == "eris"){
readThirdChunk();
}
else{
callback("second read returned wrong data");
}
}
else{
callback(error);
}
});
}
function readThirdChunk(){
reader.read(null, function(data, error){
if(data){
if(data == "h"){
callback();
}
else{
callback("third read returned wrong data");
}
}
else{
callback(error);
}
});
}
readFirstChunk();
},
"finish": function(){}
}
})["export"](module);