diff --git a/test/integration/connection-test.coffee b/test/integration/connection-test.coffee index 49bfff4ca..20eec0f96 100644 --- a/test/integration/connection-test.coffee +++ b/test/integration/connection-test.coffee @@ -1,19 +1,101 @@ -Connection = require('../../lib/connection') +Connection = require('../../lib/connection2') Request = require('../../lib/request') fs = require('fs') -config = JSON.parse(fs.readFileSync(process.env.HOME + '/.tedious/test-connection.json', 'utf8')) -config.options.debug = - data: true - payload: true - token: true +getConfig = -> + config = JSON.parse(fs.readFileSync(process.env.HOME + '/.tedious/test-connection.json', 'utf8')) + + config.options.debug = + packet: true + data: true + payload: true + token: false + log: true + + config + +exports.badServer = (test) -> + config = getConfig() + config.server = 'bad-server' + + connection = new Connection(config) + + connection.on('connection', (err) -> + test.ok(err) + ) + + connection.on('end', (info) -> + test.done() + ) + + connection.on('debug', (text) -> + #console.log(text) + ) + +exports.badPort = (test) -> + config = getConfig() + config.options.port = -1 + config.options.connectTimeout = 200 + + connection = new Connection(config) + + connection.on('connection', (err) -> + test.ok(err) + ) + + connection.on('end', (info) -> + test.done() + ) + + connection.on('debug', (text) -> + #console.log(text) + ) + +exports.badCredentials = (test) -> + test.expect(2) + + config = getConfig() + config.password = 'bad-password' + + connection = new Connection(config) + + connection.on('connection', (err) -> + test.ok(err) + + connection.close() + ) + + connection.on('end', (info) -> + test.done() + ) + + connection.on('infoMessage', (info) -> + #console.log("#{info.number} : #{info.message}") + ) + + connection.on('errorMessage', (error) -> + #console.log("#{error.number} : #{error.message}") + test.ok(~error.message.indexOf('failed')) + ) + + connection.on('debug', (text) -> + #console.log(text) + ) exports.connect = (test) -> - connection = new Connection(config.server, config.userName, config.password, config.options, (err, loggedIn) -> + test.expect(2) + + config = getConfig() + + connection = new Connection(config) + + connection.on('connection', (err) -> test.ok(!err) - test.ok(loggedIn) - test.strictEqual(connection.database(), config.options.database) + connection.close() + ) + + connection.on('end', (info) -> test.done() ) @@ -21,179 +103,226 @@ exports.connect = (test) -> test.strictEqual(database, config.options.database) ) - connection.on('debug', (message) -> - #console.log(message) + connection.on('infoMessage', (info) -> + #console.log("#{info.number} : #{info.message}") ) -exports.execSimpleSql = (test) -> - test.expect(9) + connection.on('debug', (text) -> + #console.log(text) + ) + +exports.execSql = (test) -> + test.expect(8) + + config = getConfig() - request = new Request('select 8 as C1', (err, rowCount) -> + request = new Request('select 8 as C1', (err) -> test.ok(!err) + + connection.close() + ) + + request.on('done', (rowCount, more) -> + test.ok(!more) test.strictEqual(rowCount, 1) - test.done() ) request.on('columnMetadata', (columnsMetadata) -> test.strictEqual(columnsMetadata.length, 1) ) - + request.on('row', (columns) -> test.strictEqual(columns.length, 1) - test.strictEqual(columns[0].value, 8) - test.strictEqual(columns[0].isNull, false) - - byName = columns.byName() - test.strictEqual(byName.C1.value, 8) + test.strictEqual(columns.byName().C1.value, 8) ) - connection = new Connection(config.server, config.userName, config.password, config.options, (err, loggedIn) -> - test.ok(!err) - test.ok(loggedIn) + connection = new Connection(config) + connection.on('connection', (err) -> connection.execSql(request) ) - - connection.on('debug', (message) -> - #console.log(message) + + connection.on('end', (info) -> + test.done() ) -exports.execSqlWithLotsOfRowsReturned = (test) -> - numberOfRows = 1000 - rowsReceived = 0 + connection.on('infoMessage', (info) -> + #console.log("#{info.number} : #{info.message}") + ) - test.expect(6) + connection.on('debug', (text) -> + #console.log(text) + ) - request = new Request("select top #{numberOfRows} object_id, name from sys.all_columns", (err, rowCount) -> - test.ok(!err) - test.strictEqual(rowCount, numberOfRows) - test.strictEqual(rowsReceived, numberOfRows) - test.done() +exports.execBadSql = (test) -> + test.expect(4) + + config = getConfig() + + request = new Request('bad syntax here', (err) -> + test.ok(err) + + connection.close() ) - request.on('columnMetadata', (columnsMetadata) -> - test.strictEqual(columnsMetadata.length, 2) + request.on('done', (rowCount, more) -> + test.ok(!more) + test.ok(!rowCount) ) - - request.on('row', (columns) -> - rowsReceived++ + + connection = new Connection(config) + + connection.on('connection', (err) -> + connection.execSql(request) ) - connection = new Connection(config.server, config.userName, config.password, config.options, (err, loggedIn) -> - test.ok(!err) - test.ok(loggedIn) - - connection.execSql(request) + connection.on('end', (info) -> + test.done() ) - - connection.on('debug', (message) -> - #console.log(message) + + connection.on('errorMessage', (error) -> + #console.log("#{error.number} : #{error.message}") + test.ok(error) ) -exports.execBadSql = (test) -> - test.expect(6) + connection.on('debug', (text) -> + #console.log(text) + ) - request = new Request('select bad syntax here', (err, rowCount) -> - test.ok(err) - test.strictEqual(rowCount, undefined) - test.done() +exports.sqlWithMultipleResultSets = (test) -> + test.expect(9) + + config = getConfig() + row = 0 + + request = new Request('select 1; select 2;', (err) -> + test.ok(!err) + + connection.close() + ) + + request.on('done', (rowCount, more) -> + switch row + when 1 + test.ok(more) + when 2 + test.ok(!more) + test.strictEqual(rowCount, 1) + ) + + request.on('columnMetadata', (columnsMetadata) -> + test.strictEqual(columnsMetadata.length, 1) ) request.on('row', (columns) -> - test.ok(false) + test.strictEqual(columns[0].value, ++row) ) - connection = new Connection(config.server, config.userName, config.password, config.options, (err, loggedIn) -> - test.ok(!err) - test.ok(loggedIn) - - connection.execSql(request) + connection = new Connection(config) + + connection.on('connection', (err) -> + connection.execSql(request) ) - - connection.on('errorMessage', (error) -> - test.ok(error.message.indexOf('syntax')) - test.strictEqual(error.number, 102) + + connection.on('end', (info) -> + test.done() ) - connection.on('debug', (message) -> - #console.log(message) + connection.on('infoMessage', (info) -> + #console.log("#{info.number} : #{info.message}") ) -exports.execSqlProc = (test) -> - rows = 0 + connection.on('debug', (text) -> + #console.log(text) + ) - request = new Request('exec sp_who2', (err, returnStatus) -> - test.ok(!err) - test.strictEqual(returnStatus, 0) - test.ok(rows > 0) - test.done() +exports.execProc = (test) -> + test.expect(5) + + config = getConfig() + + request = new Request('exec sp_help int', (err) -> + test.ok(!err) + + connection.close() ) - request.on('columnMetadata', (columnsMetadata) -> - test.strictEqual(columnsMetadata.length, 13) + request.on('doneProc', (rowCount, more, returnStatus) -> + test.ok(!more) + test.strictEqual(returnStatus, 0) + ) + + request.on('doneInProc', (rowCount, more) -> + test.ok(more) ) request.on('row', (columns) -> - rows++ - test.strictEqual(columns.length, 13) + test.ok(true) ) - - connection = new Connection(config.server, config.userName, config.password, config.options, (err, loggedIn) -> - test.ok(!err) - test.ok(loggedIn) - - connection.execSql(request) + + connection = new Connection(config) + + connection.on('connection', (err) -> + connection.execSql(request) ) - - connection.on('debug', (message) -> - #console.log(message) + + connection.on('end', (info) -> + test.done() ) -exports.badCredentials = (test) -> - test.expect(4) + connection.on('infoMessage', (info) -> + #console.log("#{info.number} : #{info.message}") + ) - connection = new Connection(config.server, config.userName, 'bad-password', config.options, (err, loggedIn) -> - test.ok(err) - test.ok(!loggedIn) + connection.on('debug', (text) -> + #console.log(text) + ) - test.done() +exports.execFailedProc = (test) -> + test.expect(5) + + config = getConfig() + + request = new Request('exec sp_help bad_object_name', (err) -> + test.ok(err) + + connection.close() ) - connection.on('errorMessage', (error) -> - test.ok(error.message.indexOf('failed')) - test.strictEqual(error.number, 18456) + request.on('doneProc', (rowCount, more, returnStatus) -> + test.ok(!more) + test.strictEqual(returnStatus, 1) # Non-zero indicates a failure. ) - connection.on('debug', (message) -> - #console.log(message) + request.on('doneInProc', (rowCount, more) -> + test.ok(more) ) -exports.badServer = (test) -> - connection = new Connection('bad-server', config.userName, config.password, config.options, (err, loggedIn) -> - test.ok(false) + request.on('row', (columns) -> + test.ok(false) ) - connection.on('fatal', (error) -> - test.done() + connection = new Connection(config) + + connection.on('connection', (err) -> + connection.execSql(request) ) - connection.on('debug', (message) -> - #console.log(message) + connection.on('end', (info) -> + test.done() ) -exports.badPort = (test) -> - config.options.port = -1 - config.options.timeout = 50 # Fail fast, to stop the tests taking too long. - connection = new Connection(config.server, config.userName, config.password, config.options, (err, loggedIn) -> - test.ok(false) + connection.on('infoMessage', (info) -> + #console.log("#{info.number} : #{info.message}") ) - connection.on('fatal', (error) -> - test.done() + connection.on('errorMessage', (error) -> + #console.log("#{error.number} : #{error.message}") + test.ok(error) ) - connection.on('debug', (message) -> - #console.log(message) + connection.on('debug', (text) -> + #console.log(text) ) diff --git a/test/integration/connection2-test.coffee b/test/integration/connection2-test.coffee deleted file mode 100644 index 20eec0f96..000000000 --- a/test/integration/connection2-test.coffee +++ /dev/null @@ -1,328 +0,0 @@ -Connection = require('../../lib/connection2') -Request = require('../../lib/request') -fs = require('fs') - -getConfig = -> - config = JSON.parse(fs.readFileSync(process.env.HOME + '/.tedious/test-connection.json', 'utf8')) - - config.options.debug = - packet: true - data: true - payload: true - token: false - log: true - - config - -exports.badServer = (test) -> - config = getConfig() - config.server = 'bad-server' - - connection = new Connection(config) - - connection.on('connection', (err) -> - test.ok(err) - ) - - connection.on('end', (info) -> - test.done() - ) - - connection.on('debug', (text) -> - #console.log(text) - ) - -exports.badPort = (test) -> - config = getConfig() - config.options.port = -1 - config.options.connectTimeout = 200 - - connection = new Connection(config) - - connection.on('connection', (err) -> - test.ok(err) - ) - - connection.on('end', (info) -> - test.done() - ) - - connection.on('debug', (text) -> - #console.log(text) - ) - -exports.badCredentials = (test) -> - test.expect(2) - - config = getConfig() - config.password = 'bad-password' - - connection = new Connection(config) - - connection.on('connection', (err) -> - test.ok(err) - - connection.close() - ) - - connection.on('end', (info) -> - test.done() - ) - - connection.on('infoMessage', (info) -> - #console.log("#{info.number} : #{info.message}") - ) - - connection.on('errorMessage', (error) -> - #console.log("#{error.number} : #{error.message}") - test.ok(~error.message.indexOf('failed')) - ) - - connection.on('debug', (text) -> - #console.log(text) - ) - -exports.connect = (test) -> - test.expect(2) - - config = getConfig() - - connection = new Connection(config) - - connection.on('connection', (err) -> - test.ok(!err) - - connection.close() - ) - - connection.on('end', (info) -> - test.done() - ) - - connection.on('databaseChange', (database) -> - test.strictEqual(database, config.options.database) - ) - - connection.on('infoMessage', (info) -> - #console.log("#{info.number} : #{info.message}") - ) - - connection.on('debug', (text) -> - #console.log(text) - ) - -exports.execSql = (test) -> - test.expect(8) - - config = getConfig() - - request = new Request('select 8 as C1', (err) -> - test.ok(!err) - - connection.close() - ) - - request.on('done', (rowCount, more) -> - test.ok(!more) - test.strictEqual(rowCount, 1) - ) - - request.on('columnMetadata', (columnsMetadata) -> - test.strictEqual(columnsMetadata.length, 1) - ) - - request.on('row', (columns) -> - test.strictEqual(columns.length, 1) - test.strictEqual(columns[0].value, 8) - test.strictEqual(columns[0].isNull, false) - test.strictEqual(columns.byName().C1.value, 8) - ) - - connection = new Connection(config) - - connection.on('connection', (err) -> - connection.execSql(request) - ) - - connection.on('end', (info) -> - test.done() - ) - - connection.on('infoMessage', (info) -> - #console.log("#{info.number} : #{info.message}") - ) - - connection.on('debug', (text) -> - #console.log(text) - ) - -exports.execBadSql = (test) -> - test.expect(4) - - config = getConfig() - - request = new Request('bad syntax here', (err) -> - test.ok(err) - - connection.close() - ) - - request.on('done', (rowCount, more) -> - test.ok(!more) - test.ok(!rowCount) - ) - - connection = new Connection(config) - - connection.on('connection', (err) -> - connection.execSql(request) - ) - - connection.on('end', (info) -> - test.done() - ) - - connection.on('errorMessage', (error) -> - #console.log("#{error.number} : #{error.message}") - test.ok(error) - ) - - connection.on('debug', (text) -> - #console.log(text) - ) - -exports.sqlWithMultipleResultSets = (test) -> - test.expect(9) - - config = getConfig() - row = 0 - - request = new Request('select 1; select 2;', (err) -> - test.ok(!err) - - connection.close() - ) - - request.on('done', (rowCount, more) -> - switch row - when 1 - test.ok(more) - when 2 - test.ok(!more) - test.strictEqual(rowCount, 1) - ) - - request.on('columnMetadata', (columnsMetadata) -> - test.strictEqual(columnsMetadata.length, 1) - ) - - request.on('row', (columns) -> - test.strictEqual(columns[0].value, ++row) - ) - - connection = new Connection(config) - - connection.on('connection', (err) -> - connection.execSql(request) - ) - - connection.on('end', (info) -> - test.done() - ) - - connection.on('infoMessage', (info) -> - #console.log("#{info.number} : #{info.message}") - ) - - connection.on('debug', (text) -> - #console.log(text) - ) - -exports.execProc = (test) -> - test.expect(5) - - config = getConfig() - - request = new Request('exec sp_help int', (err) -> - test.ok(!err) - - connection.close() - ) - - request.on('doneProc', (rowCount, more, returnStatus) -> - test.ok(!more) - test.strictEqual(returnStatus, 0) - ) - - request.on('doneInProc', (rowCount, more) -> - test.ok(more) - ) - - request.on('row', (columns) -> - test.ok(true) - ) - - connection = new Connection(config) - - connection.on('connection', (err) -> - connection.execSql(request) - ) - - connection.on('end', (info) -> - test.done() - ) - - connection.on('infoMessage', (info) -> - #console.log("#{info.number} : #{info.message}") - ) - - connection.on('debug', (text) -> - #console.log(text) - ) - -exports.execFailedProc = (test) -> - test.expect(5) - - config = getConfig() - - request = new Request('exec sp_help bad_object_name', (err) -> - test.ok(err) - - connection.close() - ) - - request.on('doneProc', (rowCount, more, returnStatus) -> - test.ok(!more) - test.strictEqual(returnStatus, 1) # Non-zero indicates a failure. - ) - - request.on('doneInProc', (rowCount, more) -> - test.ok(more) - ) - - request.on('row', (columns) -> - test.ok(false) - ) - - connection = new Connection(config) - - connection.on('connection', (err) -> - connection.execSql(request) - ) - - connection.on('end', (info) -> - test.done() - ) - - connection.on('infoMessage', (info) -> - #console.log("#{info.number} : #{info.message}") - ) - - connection.on('errorMessage', (error) -> - #console.log("#{error.number} : #{error.message}") - test.ok(error) - ) - - connection.on('debug', (text) -> - #console.log(text) - ) diff --git a/test/integration/datatypes-in-results-test.coffee b/test/integration/datatypes-in-results-test.coffee index fa489eefe..7100f5227 100644 --- a/test/integration/datatypes-in-results-test.coffee +++ b/test/integration/datatypes-in-results-test.coffee @@ -1,12 +1,14 @@ -Connection = require('../../lib/connection') +Connection = require('../../lib/connection2') Request = require('../../lib/request') fs = require('fs') config = JSON.parse(fs.readFileSync(process.env.HOME + '/.tedious/test-connection.json', 'utf8')) config.options.debug = + packet: true data: true payload: true - token: true + token: false + log: true exports.null = (test) -> execSql(test, 'select null', null) @@ -121,11 +123,12 @@ exports.ncharNull = (test) -> execSql = (test, sql, expectedValue) -> - test.expect(3) + test.expect(2) - request = new Request(sql, (err, rowCount) -> + request = new Request(sql, (err) -> test.ok(!err) - test.done() + + connection.close() ) request.on('row', (columns) -> @@ -139,14 +142,18 @@ execSql = (test, sql, expectedValue) -> test.strictEqual(columns[0].value, expectedValue) ) - connection = new Connection(config.server, config.userName, config.password, config.options, (err, loggedIn) -> - test.ok(!err) + connection = new Connection(config) + connection.on('connection', (err) -> connection.execSql(request) ) - connection.on('error', (message) -> - console.log(message) + connection.on('end', (info) -> + test.done() + ) + + connection.on('errorMessage', (error) -> + #console.log("#{error.number} : #{error.message}") ) connection.on('debug', (message) ->