jmx
Version:
Bridge library to communicate with Java applications through JMX.
93 lines (76 loc) • 3.09 kB
JavaScript
var libpath = process.env.JMX_COVERAGE ? "./../../../lib-cov" : "./../../../lib";
var assert = require("assert"),
java = require("java"),
conversions = require(libpath + "/adapters/helpers/conversions");
describe("conversions", function() {
describe("#v8ToJavaClass", function() {
[
// js objects
[ "some string", "java.lang.String" ],
[ false, "boolean" ],
[ 1, "int" ],
[ -2147483648, "int" ],
[ -2147483649, "double" ],
[ 4294967295, "int" ],
[ 4294967296, "double" ],
[ 1.5, "double" ],
[ [ "an array" ], "java.lang.Object" ], // TODO: test/fix this
// java objects
[ java.newInstanceSync("java.lang.String", "other string"), "java.lang.String" ],
[ java.newInstanceSync("java.lang.Boolean", "false"), "boolean" ],
[ java.newInstanceSync("java.lang.Integer", "2"), "int" ],
[ java.newInstanceSync("java.lang.Long", "2"), "long" ],
[ java.newInstanceSync("java.lang.Float", "2"), "int" ],
[ java.newInstanceSync("java.lang.Float", "1.5"), "double" ],
[ java.newInstanceSync("java.lang.Double", "2"), "int" ],
[ java.newInstanceSync("java.lang.Double", "1.5"), "double" ],
[ java.newInstanceSync("javax.management.Attribute", "name", "value"), "javax.management.Attribute" ]
].forEach(function(value) {
var param = value[0];
var javaClass = value[1];
it("returns \"" + javaClass + "\" for argument value \"" + param + "\" and typeof \"" + typeof param + "\"", function() {
assert.strictEqual(conversions.v8ToJavaClass(param), javaClass);
});
});
it("throws an exception when the object cannot be converted", function() {
assert.throws(
function() {
conversions.v8ToJavaClass(undefined);
},
/v8ToJavaClass[(][)]: unknown object type/
);
});
});
describe("#isJavaPrimitiveClass", function() {
[
"byte",
"short",
"int",
"long",
"float",
"double",
"boolean",
"char"
].forEach(function(className) {
it("returns true for \"" + className + "\"", function() {
assert.strictEqual(conversions.isJavaPrimitiveClass(className), true);
});
});
[
"java.lang.Byte",
"java.lang.Short",
"java.lang.Integer",
"java.lang.Long",
"java.lang.Float",
"java.lang.Double",
"java.long.Boolean",
"java.lang.String",
"java.lang.Object",
java.newInstanceSync("javax.management.Attribute", "name", "value").getClassSync().getNameSync()
].forEach(function(className) {
it("returns false for \"" + className + "\"", function() {
assert.strictEqual(conversions.isJavaPrimitiveClass(className), false);
});
});
});
});