UNPKG

ndbc-mysql

Version:

The ndbc connector to connect mysql database.

219 lines (218 loc) 9.14 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const ndbc_connector_1 = require("ndbc-connector"); const __1 = require(".."); const chai_1 = require("chai"); function getString(value, size, defaultValue = " ") { let str = ""; let count = value === undefined || value == null ? 0 : value.length; for (let index = 0; index < size; index++) { if (index < count) { const element = value[index]; str += element; } else { str += defaultValue; } } return str; } function printResult(result, size = 50) { let columns = result.getMetadata(); let count = columns.length; let columnLine = ""; for (let i = 0; i < columns.length; i++) { const element = columns[i]; columnLine += getString(element.getColumnName(), size) + "|"; } console.log(columnLine); columnLine = ""; for (let i = 0; i < columns.length; i++) { columnLine += getString("", size, "=") + "|"; } console.log(columnLine); while (result.next()) { columnLine = ""; for (let i = 0; i < columns.length; i++) { columnLine += getString(result.getValue(i), size) + "|"; } console.log(columnLine); } } function initProperties() { let properties = new Map(); properties.set("host", "localhost"); properties.set("database", "sakila"); properties.set("user", "test"); properties.set("password", "test"); return properties; } beforeEach(function () { ndbc_connector_1.DriverManager.register("mysql", new __1.MySQLDriver()); }); describe('init', function () { it('Invalid Driver Name', function () { return __awaiter(this, void 0, void 0, function* () { try { let properties = new Map(); yield ndbc_connector_1.DriverManager.connect("mysqla", properties).then((value) => { chai_1.expect(value).null; return value; }); } catch (err) { chai_1.expect(err).to.equal("The mysqla does not found."); } }); }); it('Requirement Check', function () { return __awaiter(this, void 0, void 0, function* () { try { let properties = new Map(); yield ndbc_connector_1.DriverManager.connect("mysql", properties).then((value) => { chai_1.expect(value).null; return value; }); } catch (err) { chai_1.expect(err.toString()).to.equal("Error: The user is required."); } }); }); it('Simple Query', function () { return __awaiter(this, void 0, void 0, function* () { let connection; try { connection = yield ndbc_connector_1.DriverManager.connect("mysql", initProperties()); let statement = yield connection.createStatement("SELECT * FROM actor"); let resultSet = yield statement.execute(new Map()); chai_1.expect(resultSet.next()).true; chai_1.expect(resultSet.getValue("actor_id")).to.equal(1); chai_1.expect(resultSet.getValue("first_name")).to.equal('PENELOPE'); chai_1.expect(resultSet.getValue("last_name")).to.equal('GUINESS'); chai_1.expect(resultSet.getValue("last_update").getTime()).to.equal(new Date(2006, 1, 15, 4, 34, 33).getTime()); let rowCount = 0; while (resultSet.next()) { rowCount++; } chai_1.expect(rowCount).greaterThan(100); } finally { if (connection !== undefined) { connection.close(); } } }); }); it('Meta Query', function () { return __awaiter(this, void 0, void 0, function* () { let connection; try { connection = yield ndbc_connector_1.DriverManager.connect("mysql", initProperties()); let statement = yield connection.createStatement("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='sakila'"); let resultSet = yield statement.execute(new Map()); chai_1.expect(resultSet.next()).true; chai_1.expect(resultSet.getValue("TABLE_NAME")).to.equal('actor'); let rowCount = 0; while (resultSet.next()) { rowCount++; } chai_1.expect(rowCount).greaterThan(10); } finally { if (connection !== undefined) { connection.close(); } } }); }); it('GetCatalogs', function () { return __awaiter(this, void 0, void 0, function* () { let connection; try { connection = yield ndbc_connector_1.DriverManager.connect("mysql", initProperties()); let resultSet = yield connection.getMetadata().getCatalogs(""); chai_1.expect(resultSet.next()).false; } finally { if (connection !== undefined) { connection.close(); } } }); }); it('GetSchemas', function () { return __awaiter(this, void 0, void 0, function* () { let connection; try { connection = yield ndbc_connector_1.DriverManager.connect("mysql", initProperties()); let resultSet = yield connection.getMetadata().getSchemas("", "sakila"); chai_1.expect(resultSet.next()).true; let rowCount = 0; while (resultSet.next()) { rowCount++; } chai_1.expect(rowCount).greaterThan(6); } finally { if (connection !== undefined) { connection.close(); } } }); }); it('GetTables', function () { return __awaiter(this, void 0, void 0, function* () { let connection; try { connection = yield ndbc_connector_1.DriverManager.connect("mysql", initProperties()); let resultSet = yield connection.getMetadata().getTables("", "sakila", "", ["TABLE"]); chai_1.expect(resultSet.next()).true; chai_1.expect(resultSet.getValue("TABLE_NAME")).to.equal("actor"); let rowCount = 0; while (resultSet.next()) { rowCount++; } chai_1.expect(rowCount).greaterThan(6); } finally { if (connection !== undefined) { connection.close(); } } }); }); it('GetColumns', function () { return __awaiter(this, void 0, void 0, function* () { let connection; try { connection = yield ndbc_connector_1.DriverManager.connect("mysql", initProperties()); let resultSet = yield connection.getMetadata().getColumns("", "sakila", "actor"); chai_1.expect(resultSet.next()).true; chai_1.expect(resultSet.getValue("TABLE_NAME")).to.equal("actor"); chai_1.expect(resultSet.getValue("COLUMN_NAME")).to.equal("actor_id"); chai_1.expect(resultSet.next()).true; chai_1.expect(resultSet.getValue("COLUMN_NAME")).to.equal("first_name"); chai_1.expect(resultSet.next()).true; chai_1.expect(resultSet.getValue("COLUMN_NAME")).to.equal("last_name"); chai_1.expect(resultSet.next()).true; chai_1.expect(resultSet.getValue("COLUMN_NAME")).to.equal("last_update"); chai_1.expect(resultSet.next()).false; } finally { if (connection !== undefined) { connection.close(); } } }); }); });