jsharmony-db-iseries
Version:
jsHarmony Database Connector for DB2/iSeries
100 lines (80 loc) • 3.81 kB
JavaScript
/*
Copyright 2022 apHarmony
This file is part of jsHarmony.
jsHarmony is free software: you can redistribute it and/or modify
it.skip under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
jsHarmony is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this package. If not, see <http://www.gnu.org/licenses/>.
*/
var JSHiseries = require('../index');
var JSHdb = require('jsharmony-db');
var assert = require('assert');
var _ = require('lodash');
var initialdbconfig = require('./dbconfig');
var driver = new JSHiseries();
var dbconfig = _.extend({_driver: driver, connectionString: "DSN=ODBC;Uid=DBUSER;pwd=DBPASS", initialSize: 1, options: {pooled: true, metadata_filter: ['JSHARMONY1.%']} }, initialdbconfig);
var db = new JSHdb(dbconfig);
driver.platform.Config.debug_params.db_error_sql_state = true;
driver.platform.Config.debug_params.db_raw_sql = true;
describe('Meta',function(){
this.timeout(9000);
after(function(done){
driver.Close(done);
});
it('metaInclude - filtered', function() {
assert.equal(db.meta.metaInclude('TABLE_SCHEMA', 'TABLE_NAME', ['jsharmony1.%', 'jsharmony1.alltypes']), "((TABLE_SCHEMA = 'JSHARMONY1' AND TABLE_NAME = 'ALLTYPES') OR TABLE_SCHEMA IN ('JSHARMONY1'))");
});
it('metaInclude - all', function() {
assert.equal(db.meta.metaInclude('TABLE_SCHEMA', 'TABLE_NAME', ['%.%']), "(TABLE_SCHEMA NOT LIKE 'Q%' AND TABLE_NAME NOT IN ('SYSIBM', 'SYSIBMADM', 'SYSTOOLS'))");
});
it('metaInclude - empty', function() {
assert.equal(db.meta.metaInclude('TABLE_SCHEMA', 'TABLE_NAME', []), "(0=1)");
});
it('metaIncludejoin - filtered', function() {
assert.equal(db.meta.metaIncludeJoin('T.TABLE_SCHEMA', 'T.TABLE_NAME', ['jsharmony1.%', 'jsharmony1.alltypes']), "");
});
it('metaIncludejoin - blank', function() {
assert.equal(db.meta.metaIncludeJoin('T.TABLE_SCHEMA', 'T.TABLE_NAME', null), " INNER JOIN QSYS2.TABLES I ON (T.TABLE_SCHEMA = I.TABLE_SCHEMA AND T.TABLE_NAME = I.TABLE_NAME) ");
});
it('metaIncludejoin - empty', function() {
assert.equal(db.meta.metaIncludeJoin('T.TABLE_SCHEMA', 'T.TABLE_NAME', []), " INNER JOIN QSYS2.TABLES I ON (T.TABLE_SCHEMA = I.TABLE_SCHEMA AND T.TABLE_NAME = I.TABLE_NAME) ");
});
it('getTables - all', function (done) {
db.meta.getTables(null, {}, function(err, messages, tables) {
console.log(arguments);
assert(!err, "Success");
assert.notEqual(tables.length, 0, "got results");
done();
});
});
it('getTables - one', function (done) {
db.meta.getTables({schema: 'jsharmony1', name: 'alltypes'}, {}, function(err, messages, tables) {
console.log(arguments);
assert(!err, "Success");
assert.notEqual(tables.length, 0, "got results");
done();
});
});
it('getTableFields', function (done) {
db.meta.getTableFields({schema: 'jsharmony1', name: 'alltypes'}, function(err, messages, fields) {
console.log(fields);
assert(!err, "Success");
assert.notEqual(fields.length, 0, "got results");
done();
});
});
it('getForeignKeys', function (done) {
db.meta.getForeignKeys({schema: 'jsharmony1', name: 'b'}, function(err, messages, fields) {
console.log(fields);
assert(!err, "Success");
assert.notEqual(fields.length, 0, "got results");
done();
});
});
});