java
Version:
Bridge API to connect with existing Java APIs.
121 lines (106 loc) • 3.81 kB
text/typescript
import { beforeAll, describe, expect, test } from "vitest";
import { Java } from "../java";
import { getJava } from "../testHelpers";
describe("Java - Call Ambiguous Method", () => {
let java!: Java;
beforeAll(async () => {
java = await getJava();
});
test("staticMethodAmbiguous (sync) - int passed to double", () => {
const result = java.callStaticMethodSync("Test", "staticMethodAmbiguous(Ljava/lang/Double;)I", 1);
expect(result).toBe(1);
});
test("staticMethodAmbiguous (sync) - double passed to int", () => {
const result = java.callStaticMethodSync("Test", "staticMethodAmbiguous(Ljava/lang/Integer;)I", 1.1);
expect(result).toBe(2);
});
test("staticMethodAmbiguous (sync) - method not found wrong argument type", () => {
expect(() => {
java.callStaticMethodSync("Test", "staticMethodAmbiguous(Ljava/lang/String;)I", 1);
}).toThrow();
});
test("staticMethodAmbiguous (sync) - method failed because argument count mismatch", () => {
expect(() => {
java.callStaticMethodSync("Test", "staticMethodAmbiguous(Ljava/lang/Integer;)I", 1, 2);
}).toThrow();
});
test("staticMethodAmbiguous - int passed to double", async () => {
await new Promise<void>((resolve) => {
java.callStaticMethod(
"Test",
"staticMethodAmbiguous(Ljava/lang/Double;)I",
1,
(err: Error | undefined, result: number | undefined) => {
expect(err).toBeFalsy();
expect(result).toBe(1);
resolve();
}
);
});
});
test("staticMethodAmbiguous - double passed to int", async () => {
await new Promise<void>((resolve) => {
java.callStaticMethod(
"Test",
"staticMethodAmbiguous(Ljava/lang/Integer;)I",
1.1,
(err: Error | undefined, result: number | undefined) => {
expect(err).toBeFalsy();
expect(result).toBe(2);
resolve();
}
);
});
});
test("staticMethodAmbiguous - method not found", async () => {
await new Promise<void>((resolve) => {
java.callStaticMethod(
"Test",
"staticMethodAmbiguous(Ljava/lang/String;)I",
1,
(err: Error | undefined, result: number | undefined) => {
expect(err).toBeTruthy();
expect(result).toBeFalsy();
resolve();
}
);
});
});
test("staticMethodAmbiguous - method argument count mismatch", async () => {
await new Promise<void>((resolve) => {
java.callStaticMethod(
"Test",
"staticMethodAmbiguous(Ljava/lang/Integer;)I",
1,
2,
(err: Error | undefined, result: number | undefined) => {
expect(err).toBeTruthy();
expect(result).toBeFalsy();
resolve();
}
);
});
});
test("methodAmbiguous (sync) - int passed to double", () => {
const myTest = java.newInstanceSync("Test");
const result = java.callMethodSync(myTest, "methodAmbiguous(Ljava/lang/Double;)I", 1);
expect(result).toBe(1);
});
test("methodAmbiguous (sync) - double passed to int", () => {
const myTest = java.newInstanceSync("Test");
const result = java.callMethodSync(myTest, "methodAmbiguous(Ljava/lang/Integer;)I", 1.1);
expect(result).toBe(2);
});
test("methodAmbiguous (sync) - method not found wrong argument type", () => {
const myTest = java.newInstanceSync("Test");
expect(() => {
java.callMethodSync(myTest, "methodAmbiguous(Ljava/lang/String;)I", 1);
}).toThrow();
});
test("methodAmbiguous (sync) - method failed because argument count mismatch", () => {
const myTest = java.newInstanceSync("Test");
expect(() => {
java.callMethodSync(myTest, "methodAmbiguous(Ljava/lang/Integer;)I", 1, 2);
}).toThrow();
});
});