From 1631adc3bc0dd93de3aaed2e9e5554e06805ed8e Mon Sep 17 00:00:00 2001 From: Elise Chouleur Date: Sat, 30 Sep 2023 00:37:43 +0200 Subject: [PATCH] Add Java test --- tests/driver/native/src/lib.rs | 4 ++++ tests/driver/src/main/java/User.java | 2 ++ tests/driver/src/test/java/UserTest.java | 12 ++++++++++++ 3 files changed, 18 insertions(+) diff --git a/tests/driver/native/src/lib.rs b/tests/driver/native/src/lib.rs index 37b611de0..ed5afbf33 100644 --- a/tests/driver/native/src/lib.rs +++ b/tests/driver/native/src/lib.rs @@ -135,6 +135,10 @@ pub mod jni { format!("{:?}", v) } + pub extern "jni" fn byteArrayToString(self, v: Box<[u8]>) -> String { + format!("{:?}", v) + } + pub extern "java" fn getPassword( &self, env: &JNIEnv, diff --git a/tests/driver/src/main/java/User.java b/tests/driver/src/main/java/User.java index 4297188fd..6064d17a3 100644 --- a/tests/driver/src/main/java/User.java +++ b/tests/driver/src/main/java/User.java @@ -55,6 +55,8 @@ public class User { public native String stringArrayToString(List x); + public native String byteArrayToString(byte[] x); + private native static void initNative(); public native static String userCountStatus(); diff --git a/tests/driver/src/test/java/UserTest.java b/tests/driver/src/test/java/UserTest.java index b1996babd..f2ca5a608 100644 --- a/tests/driver/src/test/java/UserTest.java +++ b/tests/driver/src/test/java/UserTest.java @@ -5,6 +5,7 @@ import java.util.function.Function; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertArrayEquals; public class UserTest { private User u; @@ -135,6 +136,12 @@ public void stringArrayTest() { assertValueRoundTrip(u::getStringArray, u::stringArrayToString, List.of("a", "b", "c"), "[\"a\", \"b\", \"c\"]"); } + @Test + public void byteArrayTest() { + assertArrayValueRoundTrip(u::getByteArray, u::byteArrayToString, new byte[0], "[]"); + assertArrayValueRoundTrip(u::getByteArray, u::byteArrayToString, new byte[] {1, 2, 3}, "[1, 2, 3]"); + } + @Test public void staticMethod() { assertEquals(String.valueOf(User.getTotalUsersCount()), User.userCountStatus()); @@ -144,4 +151,9 @@ private void assertValueRoundTrip(Function func, Function t assertEquals(value, func.apply(value)); assertEquals(text, toString.apply(value)); } + + private void assertArrayValueRoundTrip(Function func, Function toString, byte[] value, String text) { + assertArrayEquals(value, func.apply(value)); + assertEquals(text, toString.apply(value)); + } }