169 lines
4.8 KiB
JavaScript

/*
Copyright (c) 2012, 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 util = require("util");
var udebug = unified_debug.getLogger("GetMappingTest.js");
var expectedMappingFor_t_basic = {
"table" : "t_basic",
"database" : "test",
"fields" : [{
"fieldName" : "id",
"defaultValue" : undefined,
"columnName" : "id",
"persistent" : true
}]
};
var verifyMapping = function(testCase, expected, result) {
udebug.log('GetMappingTest result: ', util.inspect(result));
testCase.errorIfNotEqual('Mapping.table mismatch', expected.table, result.table);
testCase.errorIfNotEqual('Mapping.database mismatch', expected.database, result.database);
testCase.errorIfNotEqual('Mapping.fields.fieldName mismatch', expected.fields[0].fieldName, result.fields[0].fieldName);
testCase.errorIfNotEqual('Mapping.fields.columnName mismatch', expected.fields[0].columnName, result.fields[0].columnName);
testCase.errorIfNotEqual('Mapping.fields.persistent mismatch', expected.fields[0].persistent, result.fields[0].persistent);
testCase.errorIfNotEqual('Mapping.fields.defaultValue mismatch', expected.fields[0].defaultValue, result.fields[0].defaultValue);
};
var t1 = new harness.SerialTest("getMappingForConstructor");
t1.run = function() {
fail_openSession(t1, t1.testGetMapping);
};
t1.testGetMapping = function(session, testCase) {
session.getMapping(global.t_basic, function(err, result) {
if (err) {
testCase.fail(err);
return;
}
verifyMapping(testCase, expectedMappingFor_t_basic, result);
testCase.failOnError();
});
};
var t2 = new harness.SerialTest("getMappingForTableName");
t2.run = function() {
fail_openSession(t2, t2.testGetMapping);
};
t2.testGetMapping = function(session, testCase) {
session.getMapping('t_basic', function(err, result) {
if (err) {
testCase.fail(err);
return;
}
verifyMapping(testCase, expectedMappingFor_t_basic, result);
testCase.failOnError();
});
};
var t3 = new harness.SerialTest("getMappingForUnknownTableName");
t3.run = function() {
fail_openSession(t3, t3.testGetMapping);
};
t3.testGetMapping = function(session, testCase) {
session.getMapping('non_existent_table', function(err, result) {
if (err) {
testCase.pass();
return;
}
testCase.fail('t3 getMapping for unknown table should fail');
});
};
var t4 = new harness.SerialTest("getMappingForUnMappedConstructor");
t4.run = function() {
fail_openSession(t4, t4.testGetMapping);
};
t4.testGetMapping = function(session, testCase) {
var unmappedDomainClass = function() {
};
session.getMapping(unmappedDomainClass, function(err, result) {
if (err) {
testCase.pass();
return;
}
testCase.fail('t4 getMapping for unmapped domain object should fail');
});
};
var t5 = new harness.SerialTest("getMappingForNumber");
t5.run = function() {
fail_openSession(t5, t5.testGetMapping);
};
t5.testGetMapping = function(session, testCase) {
var unmappedDomainClass = function() {
};
try {
session.getMapping(1, function(err, result) {
if (!err) {
testCase.fail('t5 getMapping for 1 should fail');
} else {
testCase.pass();
}
});
} catch (err) {
testCase.pass();
}
};
var t6 = new harness.SerialTest("getMappingForBoolean");
t6.run = function() {
fail_openSession(t6, t6.testGetMapping);
};
t6.testGetMapping = function(session, testCase) {
var unmappedDomainClass = function() {
};
try {
session.getMapping(true, function(err, result) {
if (!err) {
testCase.fail('t6 getMapping for true should fail');
} else {
testCase.pass();
}
});
} catch (err) {
testCase.pass();
}
};
var t7 = new harness.SerialTest("getMappingForDomainObject");
t7.run = function() {
fail_openSession(t7, t7.testGetMapping);
};
t7.testGetMapping = function(session, testCase) {
session.getMapping(new global.t_basic(), function(err, result) {
if (err) {
testCase.fail(err);
} else {
verifyMapping(testCase, expectedMappingFor_t_basic, result);
testCase.failOnError();
}
});
};
module.exports.tests = [t1, t2, t3, t4, t5, t6, t7];