Skip to content

Commit

Permalink
Add Java test
Browse files Browse the repository at this point in the history
  • Loading branch information
EliseChouleur committed Sep 29, 2023
1 parent 8b4217a commit 1631adc
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
4 changes: 4 additions & 0 deletions tests/driver/native/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
2 changes: 2 additions & 0 deletions tests/driver/src/main/java/User.java
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,8 @@ public class User {

public native String stringArrayToString(List<String> x);

public native String byteArrayToString(byte[] x);

private native static void initNative();

public native static String userCountStatus();
Expand Down
12 changes: 12 additions & 0 deletions tests/driver/src/test/java/UserTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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());
Expand All @@ -144,4 +151,9 @@ private <T> void assertValueRoundTrip(Function<T, T> func, Function<T, String> t
assertEquals(value, func.apply(value));
assertEquals(text, toString.apply(value));
}

private <T> void assertArrayValueRoundTrip(Function<byte[], byte[]> func, Function<byte[], String> toString, byte[] value, String text) {
assertArrayEquals(value, func.apply(value));
assertEquals(text, toString.apply(value));
}
}

0 comments on commit 1631adc

Please sign in to comment.