integration test refactoring

This commit is contained in:
brianc 2010-10-25 21:43:55 -05:00
parent 3e0c2e4809
commit 721a2e810e
2 changed files with 39 additions and 53 deletions

View File

@ -3,62 +3,58 @@ http://developer.postgresql.org/pgdocs/postgres/protocol-flow.html#PROTOCOL-FLOW
test('flushing once', function() {
helper.connect(function(con) {
con.parse({
text: 'select * from ids'
});
con.bind();
con.execute();
con.flush();
assert.raises(con, 'parseComplete');
assert.raises(con, 'bindComplete');
assert.raises(con, 'dataRow');
assert.raises(con, 'commandComplete');
assert.raises(con, 'commandComplete');
assert.raises(con, 'readyForQuery');
con.parse({
text: 'select * from ids'
});
con.bind();
con.execute();
con.flush();
con.on('commandComplete', function() {
assert.raises(con, 'commandComplete', function(){
con.sync();
});
con.on('readyForQuery', function() {
assert.raises(con, 'readyForQuery', function(){
con.end();
});
});
});
test("sending many flushes", function() {
helper.connect(function(con) {
assert.raises(con, 'parseComplete');
assert.raises(con, 'bindComplete');
assert.raises(con, 'dataRow');
assert.raises(con, 'commandComplete');
assert.raises(con, 'commandComplete');
assert.raises(con, 'readyForQuery');
con.parse({
text: 'select * from ids'
});
con.flush();
con.once('parseComplete', function() {
assert.raises(con, 'parseComplete', function(){
con.bind();
con.flush();
});
con.once('bindComplete', function() {
assert.raises(con, 'bindComplete', function(){
con.execute();
con.flush();
});
con.once('commandComplete', function() {
con.sync();
assert.raises(con, 'dataRow', function(msg){
assert.equal(msg.fields[0], 1);
assert.raises(con, 'dataRow', function(msg){
assert.equal(msg.fields[0], 2);
assert.raises(con, 'commandComplete', function(){
con.sync();
});
assert.raises(con, 'readyForQuery', function(){
con.end();
});
});
});
con.once('readyForQuery', function() {
con.end();
con.parse({
text: "select * from ids order by id"
});
con.flush();
});
});

View File

@ -1,37 +1,28 @@
var net = require('net');
var helper = require(__dirname+'/../test-helper');
var authConnect = function(username, database, callback) {
if(typeof username === 'function') {
callback = username;
username = helper.args.user;
database = helper.args.database;
}
var connection = new Connection({stream: new net.Stream()});
connection.on('error', function(error){
var connect = function(callback) {
var username = helper.args.user;
var database = helper.args.database;
var con = new Connection({stream: new net.Stream()});
con.on('error', function(error){
console.log(error);
throw new Error("Connection error");
});
connection.connect('5432','localhost');
connection.once('connect', function() {
connection.startup({
con.connect('5432','localhost');
con.once('connect', function() {
con.startup({
user: username,
database: database
});
connection.once('authenticationCleartextPassword', function(){
connection.password(helper.args.password);
con.once('authenticationCleartextPassword', function(){
con.password(helper.args.password);
});
connection.once('authenticationMD5Password', function(msg){
con.once('authenticationMD5Password', function(msg){
var inner = Client.md5(helper.args.password+helper.args.user);
var outer = Client.md5(inner + msg.salt.toString('binary'));
connection.password("md5"+outer);
con.password("md5"+outer);
});
callback(connection);
});
};
var connect = function(callback) {
authConnect(function(con) {
con.once('readyForQuery', function() {
con.query('create temp table ids(id integer)');
con.once('readyForQuery', function() {
@ -45,6 +36,5 @@ var connect = function(callback) {
};
module.exports = {
authConnect: authConnect,
connect: connect
};