blob: 05f21def2635958e1ec4f6b3a0e2c56aac8dd8c4 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var dbUtils = require('utils/configs/database');
describe('Database Utils', function() {
describe('#getDBLocationFromJDBC', function() {
[
{
jdbcUrl: 'jdbc:mysql://localhost/somedb',
e: 'localhost'
},
{
jdbcUrl: 'jdbc:postgresql://some.hostname.com:5432/somedb',
e: 'some.hostname.com'
},
{
jdbcUrl: 'jdbc:derby:/some/dir/another_dir/somedb',
e: '/some/dir/another_dir'
},
{
jdbcUrl: 'jdbc:derby:${oozie-env/data-dir}/${oozie-env/database_name}-db',
e: '${oozie-env/data-dir}'
},
{
jdbcUrl: 'jdbc:sqlserver://127.0.0.1;databaseName=some-db;integratedSecurity=true',
e: '127.0.0.1'
},
{
jdbcUrl: 'jdbc:sqlserver://127.0.0.1:3030;databaseName=some-db;integratedSecurity=true',
e: '127.0.0.1'
},
{
jdbcUrl: 'jdbc:oracle:thin:@//localhost.com:1521/someDb',
e: 'localhost.com'
},
{
jdbcUrl: 'jdbc:oracle:thin:@ec2-52-5-27-33.compute-1.amazonaws.com:1521:ORCL',
e: 'ec2-52-5-27-33.compute-1.amazonaws.com'
},
{
jdbcUrl: 'jdbc:oracle:thin:@ec2-52-5-27-33.compute-1.amazonaws.com:3301:ORCL',
e: 'ec2-52-5-27-33.compute-1.amazonaws.com'
},
{
jdbcUrl: 'jdbc:oracle:thin:@//{0}:1521/{1}',
e: ""
},
{
jdbcUrl: 'jdbc:oracl:thin:@//some.com:1521/some-db',
e: ""
}
].forEach(function(test) {
it('when jdbc url is ' + test.jdbcUrl + ' host name is ' + test.e, function() {
expect(dbUtils.getDBLocationFromJDBC(test.jdbcUrl)).to.eql(test.e);
});
});
});
describe('#parseJdbcUrl', function() {
[
{
jdbcUrl: 'jdbc:mysql://localhost/somedb',
e: {
dbType: 'mysql',
location: 'localhost'
}
},
{
jdbcUrl: 'jdbc:postgresql://some.hostname.com:5432/somedb',
e: {
dbType: 'postgres',
location: 'some.hostname.com'
}
},
{
jdbcUrl: 'jdbc:postgresql://some.hostname.com:1111/somedb',
e: {
dbType: 'postgres',
location: 'some.hostname.com'
}
},
{
jdbcUrl: 'jdbc:derby:/some/dir/another_dir/somedb',
e: {
dbType: 'derby',
location: '/some/dir/another_dir'
}
},
{
jdbcUrl: 'jdbc:derby:${oozie-env/data-dir}/${oozie-env/database_name}-db',
e: {
dbType: 'derby',
location: '${oozie-env/data-dir}'
}
},
{
jdbcUrl: 'jdbc:derby:${oozie.data.dir}/${oozie.db.schema.name}-db;create=true',
e: {
dbType: 'derby',
location: '${oozie.data.dir}'
}
},
{
jdbcUrl: 'jdbc:sqlserver://127.0.0.1;databaseName=some-db;integratedSecurity=true',
e: {
dbType: 'mssql',
location: '127.0.0.1'
}
},
{
jdbcUrl: 'jdbc:sqlserver://127.0.0.1:3011;databaseName=some-db;integratedSecurity=true',
e: {
dbType: 'mssql',
location: '127.0.0.1'
}
},
{
jdbcUrl: 'jdbc:oracle:thin:@//localhost.com:1521/someDb',
e: {
dbType: 'oracle',
location: 'localhost.com'
}
},
{
jdbcUrl: 'jdbc:oracle:thin:@localhost.com:1521:someDb',
e: {
dbType: 'oracle',
location: 'localhost.com'
}
},
{
jdbcUrl: 'jdbc:oracle:thin:@//{0}:1521/{1}',
e: {
dbType: 'oracle',
location: ""
}
},
{
jdbcUrl: 'jdbc:oracle:thin:@//localhost:3301/somedb',
e: {
dbType: 'oracle',
location: 'localhost'
}
},
{
jdbcUrl: 'jdbc:oracle:thin:@localhost:3302/somedb',
e: {
dbType: 'oracle',
location: 'localhost'
}
},
{
jdbcUrl: 'jdbc:sqlanywhere:host=some.com;database=somedb',
e: {
dbType: 'sqla',
location: 'some.com'
}
},
{
jdbcUrl: 'jdbc:sqlanywhere:host=some.com:333;database=somedb',
e: {
dbType: 'sqla',
location: 'some.com'
}
},
{
jdbcUrl: 'jdbc:sqlanywhere:database=somedb;host=some.com:333',
e: {
dbType: 'sqla',
location: 'some.com'
}
},
{
jdbcUrl: 'jdbc:sqlanywhere:database=somedb;host=some2.com:333;someadditional=some_param',
e: {
dbType: 'sqla',
location: 'some2.com'
}
},
{
jdbcUrl: 'jdbc:oracle:thin:scott/tiger@myhost:1521:orcl',
e: {
dbType: 'oracle',
location: 'myhost'
}
},
{
jdbcUrl: 'jdbc:custom:custom/@@@',
e: {
dbType: null,
location: ''
}
}
].forEach(function(test) {
it('when jdbc url is ' + test.jdbcUrl + ' result is ' + JSON.stringify(test.e), function() {
expect(dbUtils.parseJdbcUrl(test.jdbcUrl)).to.be.deep.eql(test.e);
});
});
});
});