Skip to content

Commit 6ea7213

Browse files
committed
Add test/varargs-test.js
1 parent d33bf45 commit 6ea7213

1 file changed

Lines changed: 109 additions & 0 deletions

File tree

test/varargs-test.js

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
'use strict';
2+
3+
var java = require('../testHelpers').java;
4+
5+
var nodeunit = require('nodeunit');
6+
var util = require('util');
7+
8+
exports['varargs'] = nodeunit.testCase({
9+
10+
'array signature inferrence': function(test) {
11+
test.expect(9);
12+
var Test = java.import('Test');
13+
test.strictEqual(Test.varArgsSignatureSync([]), 'Object...');
14+
test.strictEqual(Test.varArgsSignatureSync(['a', 'b']), 'String...');
15+
test.strictEqual(Test.varArgsSignatureSync([1, 2]), 'Integer...');
16+
test.strictEqual(Test.varArgsSignatureSync([1.1, 2]), 'Number...');
17+
test.strictEqual(Test.varArgsSignatureSync([1.1, 'a']), 'Object...');
18+
test.strictEqual(Test.varArgsSignatureSync([true, 'a']), 'Object...');
19+
test.strictEqual(Test.varArgsSignatureSync([true, 1]), 'Object...');
20+
test.strictEqual(Test.varArgsSignatureSync([true, 1.1]), 'Object...');
21+
test.strictEqual(Test.varArgsSignatureSync([true, false]), 'Boolean...');
22+
test.done();
23+
},
24+
25+
'variadic signature inferrence': function(test) {
26+
test.expect(9);
27+
var Test = java.import('Test');
28+
test.strictEqual(Test.varArgsSignatureSync(), 'Object...');
29+
test.strictEqual(Test.varArgsSignatureSync('a', 'b'), 'String...');
30+
test.strictEqual(Test.varArgsSignatureSync(1, 2), 'Integer...');
31+
test.strictEqual(Test.varArgsSignatureSync(1.1, 2), 'Number...');
32+
test.strictEqual(Test.varArgsSignatureSync(1.1, 'a'), 'Object...');
33+
test.strictEqual(Test.varArgsSignatureSync(true, 'a'), 'Object...');
34+
test.strictEqual(Test.varArgsSignatureSync(true, 1), 'Object...');
35+
test.strictEqual(Test.varArgsSignatureSync(true, 1.1), 'Object...');
36+
test.strictEqual(Test.varArgsSignatureSync(true, false), 'Boolean...');
37+
test.done();
38+
},
39+
40+
'variadic no args': function(test) {
41+
test.expect(1);
42+
var String = java.import('java.lang.String');
43+
test.strictEqual(String.formatSync('nothing'), 'nothing');
44+
test.done();
45+
},
46+
47+
'variadic one args': function(test) {
48+
test.expect(1);
49+
var String = java.import('java.lang.String');
50+
test.strictEqual(String.formatSync('%s', 'hello'), 'hello');
51+
test.done();
52+
},
53+
54+
'variadic two args': function(test) {
55+
test.expect(1);
56+
var String = java.import('java.lang.String');
57+
test.strictEqual(String.formatSync('%s--%s', 'hello', 'world'), 'hello--world');
58+
test.done();
59+
},
60+
61+
'newArray(Object) no args passed': function(test) {
62+
test.expect(1);
63+
var String = java.import('java.lang.String');
64+
test.strictEqual(String.formatSync('nothing', java.newArray('java.lang.Object', [])), 'nothing');
65+
test.done();
66+
},
67+
68+
'newArray(Object) one args': function(test) {
69+
test.expect(1);
70+
var String = java.import('java.lang.String');
71+
test.strictEqual(String.formatSync('%s', java.newArray('java.lang.Object', ['hello'])), 'hello');
72+
test.done();
73+
},
74+
75+
'newArray(Object) two args': function(test) {
76+
test.expect(1);
77+
var String = java.import('java.lang.String');
78+
test.strictEqual(String.formatSync('%s--%s', java.newArray('java.lang.Object', ['hello', 'world'])), 'hello--world');
79+
test.done();
80+
},
81+
82+
'Call static method with variadic varargs': function(test) {
83+
test.expect(4);
84+
var Test = java.import('Test');
85+
test.equal(Test.staticVarargsSync(5), '5');
86+
test.equal(Test.staticVarargsSync(5, 'a'), '5a');
87+
test.equal(Test.staticVarargsSync(5, 'a', 'b'), '5ab');
88+
test.equal(Test.staticVarargsSync(5, 'a', 'b', 'c'), '5abc');
89+
test.done();
90+
},
91+
92+
'Call static varargs method with plain array': function(test) {
93+
test.expect(3);
94+
var Test = java.import('Test');
95+
test.equal(Test.staticVarargsSync(5, ['a']), '5a');
96+
test.equal(Test.staticVarargsSync(5, ['a', 'b']), '5ab');
97+
test.equal(Test.staticVarargsSync(5, ['a', 'b', 'c']), '5abc');
98+
test.done();
99+
},
100+
101+
'Call static varags method with newArray': function(test) {
102+
test.expect(2);
103+
var Test = java.import('Test');
104+
test.equal(Test.staticVarargsSync(5, java.newArray('java.lang.String', ['a'])), '5a');
105+
test.equal(Test.staticVarargsSync(5, java.newArray('java.lang.String', ['a', 'b', 'c'])), '5abc');
106+
test.done();
107+
}
108+
109+
});

0 commit comments

Comments
 (0)