@@ -593,6 +593,23 @@ int main()
593
593
assert (booleanArray.Length (env) == 42 );
594
594
assert (booleanArray.Get (env, 0 ) == jni::jni_true);
595
595
596
+ static Testable<jni::jarray<jni::jbyte>> byteArrayValue;
597
+
598
+ env.functions ->GetArrayLength = [] (JNIEnv*, jarray array) -> jsize
599
+ {
600
+ assert (array == jni::Unwrap (byteArrayValue.Ptr ()));
601
+ return 42 ;
602
+ };
603
+
604
+ env.functions ->GetByteArrayRegion = [] (JNIEnv*, jbyteArray, jsize, jsize, jbyte* buf)
605
+ {
606
+ *buf = ' s' ;
607
+ };
608
+
609
+ jni::Array<jni::jbyte> byteArray { byteArrayValue.Ptr () };
610
+ assert (byteArray.Length (env) == 42 );
611
+ assert (byteArray.Get (env, 0 ) == ' s' );
612
+
596
613
597
614
// / Object Array
598
615
@@ -746,6 +763,39 @@ int main()
746
763
assert (jni::Make<std::vector<jboolean>>(env, jni::Make<jni::Array<jni::jboolean>>(env, vec)) == vec);
747
764
748
765
766
+ env.functions ->NewByteArray = [] (JNIEnv*, jsize) -> jbyteArray
767
+ {
768
+ return jni::Unwrap (byteArrayValue.Ptr ());
769
+ };
770
+
771
+ env.functions ->GetArrayLength = [] (JNIEnv*, jarray array) -> jsize
772
+ {
773
+ assert (array == jni::Unwrap (byteArrayValue.Ptr ()));
774
+ return 1 ;
775
+ };
776
+
777
+ env.functions ->GetByteArrayRegion = [] (JNIEnv*, jbyteArray array, jsize start, jsize len, jbyte* buf)
778
+ {
779
+ assert (array == jni::Unwrap (byteArrayValue.Ptr ()));
780
+ assert (start == 0 );
781
+ assert (len == 1 );
782
+ *buf = ' s' ;
783
+ };
784
+
785
+ env.functions ->SetByteArrayRegion = [] (JNIEnv*, jbyteArray array, jsize start, jsize len, const jbyte* buf)
786
+ {
787
+ assert (array == jni::Unwrap (byteArrayValue.Ptr ()));
788
+ assert (start == 0 );
789
+ assert (len == 1 );
790
+ assert (*buf == ' s' );
791
+ };
792
+
793
+ std::vector<jbyte> byte_vec = { ' s' };
794
+ assert (jni::Make<std::vector<jbyte>>(env, jni::Make<jni::Array<jni::jbyte>>(env, byte_vec)) == byte_vec);
795
+ std::string str (" s" );
796
+ assert (jni::Make<std::string>(env, jni::Make<jni::Array<jni::jbyte>>(env, str)) == str);
797
+
798
+
749
799
jni::MakeNativeMethod<decltype (&Method), &Method>(" name" );
750
800
jni::MakeNativeMethod<decltype (&StaticMethod), &StaticMethod>(" name" );
751
801
0 commit comments