c9-core/node_modules/smith/tests/test-agent.js

85 wiersze
2.0 KiB
JavaScript

require('./helpers');
var Agent = require('..').Agent;
var Transport = require('..').Transport;
var a = new Agent({
add: function (a, b, callback) {
callback(a + b);
}
});
var b = new Agent();
process.nextTick(testFakeTransport)
expect("test1");
function testFakeTransport() {
fulfill("test1");
console.log("Testing fake transport");
var pair = makePair("A", "B", true)
expect("connect AB");
a.connect(pair.A, function (err, AB) {
if (err) throw err;
fulfill("connect AB");
console.log("A is connected to B!");
});
expect("connect BA");
b.connect(pair.B, function (err, BA) {
if (err) throw err;
fulfill("connect BA");
console.log("B is connected to A!");
expect("result");
BA.add(1, 2, function (result) {
fulfill("result");
console.log("Result", result);
assert.equal(result, 3);
testSocketTransport();
});
});
}
expect("alldone");
expect("test2");
function testSocketTransport() {
console.log("Test 2 using real tcp server");
fulfill("test2");
var net = require('net');
expect("connect1");
var server = net.createServer(function (socket) {
fulfill("connect1");
socket.on('data', function (chunk) {
console.log("B->A (%s):", chunk.length, chunk);
});
expect("connectAB");
a.connect(new Transport(socket), function (err, AB) {
if (err) throw err;
fulfill("connectAB");
console.log("A is connected to B!");
});
console.log("connection");
});
server.listen(function () {
var port = server.address().port;
expect("connect2");
var socket = net.connect(port, function () {
fulfill("connect2");
expect("connectBA");
b.connect(new Transport(socket), function (err, BA) {
if (err) throw err;
fulfill("connectBA");
console.log("B is connected to A!");
expect("result2");
BA.add(1, 2, function (result) {
fulfill("result2");
console.log("Result", result);
assert.equal(result, 3);
socket.end();
server.close();
fulfill("alldone");
});
});
});
socket.on("data", function (chunk) {
console.log("A->B (%s):", chunk.length, chunk);
});
});
}