81 lines
3.2 KiB
JavaScript
81 lines
3.2 KiB
JavaScript
/*
|
|
Copyright (c) 2014, Oracle and/or its affiliates. All rights
|
|
reserved.
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; version 2 of
|
|
the License.
|
|
|
|
This program 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 General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
|
02110-1301 USA
|
|
*/
|
|
|
|
"use strict";
|
|
|
|
var lib = require('./lib.js');
|
|
|
|
var t1 = new harness.ConcurrentTest("RelationshipMappingTest");
|
|
t1.run = function() {
|
|
var testCase = this;
|
|
lib.mapShop();
|
|
testCase.mappings = lib.shopDomainObjects;
|
|
fail_openSession(testCase, function(session) {
|
|
// get TableMetadata for all tables
|
|
session.getTableMetadata('test', 'customer').
|
|
then(function(customerMetadata){
|
|
return session.getTableMetadata('test', 'shoppingcart');}).
|
|
then(function(shoppingCartMetadata){
|
|
lib.verifyFK(testCase, shoppingCartMetadata,
|
|
[{name:'fkcustomerid',targetTable:'customer',targetDatabase:'test', columnNames:['customerid'],targetColumnNames:['id']}
|
|
]);
|
|
return session.getTableMetadata('test', 'lineitem');}).
|
|
then(function(lineItemMetadata){
|
|
lib.verifyFK(testCase, lineItemMetadata,
|
|
[{name:'fkitemid',targetTable:'item',targetDatabase:'test', columnNames:['itemid'],targetColumnNames:['id']},
|
|
{name:'fkshoppingcartid',targetTable:'shoppingcart',targetDatabase:'test', columnNames:['shoppingcartid'],targetColumnNames:['id']}
|
|
]);
|
|
return session.getTableMetadata('test', 'item');}).
|
|
then(function(itemMetadata){
|
|
return session.getTableMetadata('test', 'discount');}).
|
|
then(function(discountMetadata){
|
|
return session.getTableMetadata('test', 'customerdiscount');}).
|
|
then(function(customerDiscountMetadata){
|
|
lib.verifyFK(testCase, customerDiscountMetadata,
|
|
[{name:'fkcustomerid',targetTable:'customer',targetDatabase:'test', columnNames:['customerid'],targetColumnNames:['id']},
|
|
{name:'fkdiscountid',targetTable:'discount',targetDatabase:'test', columnNames:['discountid'],targetColumnNames:['id']}
|
|
]);
|
|
return session.close();}).
|
|
then(function() {testCase.failOnError();}, function(err) {testCase.fail(err);});
|
|
});
|
|
};
|
|
|
|
|
|
var t2 = new harness.ConcurrentTest("SecondDatabaseMappingTest");
|
|
t2.run = function() {
|
|
var testCase = this;
|
|
lib.mapFkDifferentDb();
|
|
testCase.mappings = [lib.FkDifferentDb];
|
|
fail_openSession(testCase, function(session) {
|
|
// get TableMetadata for testfk
|
|
session.getTableMetadata('testfk', 'fkdifferentdb').
|
|
then(function(t1Metadata){
|
|
lib.verifyFK(testCase, t1Metadata,
|
|
[{name:'fkcustomerid',targetTable:'customer',targetDatabase:'test', columnNames:['id'],targetColumnNames:['id']}
|
|
]);
|
|
return session.close();}).
|
|
then(function() {testCase.failOnError();}, function(err) {testCase.fail(err);});
|
|
});
|
|
};
|
|
|
|
|
|
|
|
exports.tests = [t1, t2];
|