fluentnode
Version:
Fluent apis for node (based on the concepts used in C#'s FluentSharp
134 lines (129 loc) • 4.44 kB
JavaScript
// Generated by CoffeeScript 1.12.7
(function() {
var http;
require('../../src/fluentnode');
http = require('http');
describe('| node-native | http.Server', function() {
var server, test_Data, test_Ip, test_Port, url;
test_Port = 45566 + Math.floor((Math.random() * 100) + 1);
test_Ip = '127.0.0.1';
test_Data = 'hello from web';
url = "http://" + test_Ip + ":" + test_Port;
server = null;
before(function(done) {
url.assert_Contains(test_Ip).assert_Contains(test_Port);
server = http.createServer(null);
return server.listen_OnPort_Saying(test_Port, test_Data, (function(_this) {
return function() {
return done();
};
})(this));
});
after(function(done) {
return server.close_And_Destroy_Sockets(function() {
assert_Is_Null(server._handle);
assert_Is_Null(server.address());
server._sockets.keys_Own().assert_Is_Array().assert_Size_Is(0);
return done();
});
});
it('global.__fluentnode.settings.http', function() {
return using(global.__fluentnode.http, function() {
this.assert_Is_Object();
this.HTTP_GET_TIMEOUT.assert_Is(500);
return this.HTTP_GET_DELAY.assert_Is(10);
});
});
it('createServer_OnPort_Saying', function() {
server.listen_OnPort_Saying.assert_Is_Function();
server.assert_Instance_Of(http.Server);
server._handle.assert_Is_Not_Null();
server.address().port.assert_Is(test_Port);
server.address().address.assert_Is(test_Ip);
server._sockets.assert_Is_Object();
server._sockets._keys().assert_Is_Array().assert_Size_Is(0);
return server._socket_Count.assert_Is(0);
});
it('close_And_Destroy_Sockets (case when sockets where left open)', function(done) {
var temp_Port, temp_Url;
temp_Port = 1000..random(40000);
temp_Url = "http://127.0.0.1:" + temp_Port;
using(http.createServer(null), function() {
this.add_Sockets_Close_Suport();
this.addListener('request', (function(_this) {
return function(req, res) {
_this.close_And_Destroy_Sockets();
return res.end('aaaaa');
};
})(this));
return this.listen(temp_Port);
});
return temp_Url.GET(function(data, error) {
assert_Is_Null(data);
error.message.assert_Is('socket hang up');
error.code.assert_Is('ECONNRESET');
return done();
});
});
it('respond_With_Request_Headers', function(done) {
var port;
server.respond_With_Request_Headers();
port = url.split(':').last();
return url.GET_Json(function(headers) {
headers.assert_Is({
"host": "127.0.0.1:" + port,
"connection": "close"
});
return done();
});
});
it('respond_With_Request_Url', function(done) {
server.respond_With_Request_Url();
return url.append('/aaa/bbbb').GET_Json(function(url) {
url.assert_Is({
"url": "/aaa/bbbb"
});
return done();
});
});
it('respond_With_Object_As_Json', function(done) {
var test_Object;
server.respond_With_Object_As_Json.assert_Is_Function();
test_Object = {
a: 123,
b: 456
};
server.respond_With_Object_As_Json(test_Object);
return url.GET(function(json) {
json.assert_Is(JSON.stringify(test_Object));
test_Object.a = 'abc';
return url.GET_Json(function(value) {
value.a.assert_Is('abc');
value.b.assert_Is(456);
return done();
});
});
});
it('respond_With_String_As_Text', function(done) {
var text;
text = 20..random_Letters();
server.respond_With_String_As_Text(text);
return url.GET(function(value) {
value.assert_Is(text);
server.respond_With_String_As_Text(test_Data);
return url.GET(function(value) {
value.assert_Is(test_Data);
return done();
});
});
});
return it('respond_With_Request_Object', function(done) {
server.respond_With_Request_Object();
return url.GET(function(req_Data) {
req_Data.assert_Is_String();
req_Data.assert_Contains("headers: { host: '127.0.0.1:").assert_Contains(['socket:', 'connection:']);
return done();
});
});
});
}).call(this);