@@ -593,6 +593,23 @@ int main()
593593 assert (booleanArray.Length (env) == 42 );
594594 assert (booleanArray.Get (env, 0 ) == jni::jni_true);
595595
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+
596613
597614 // / Object Array
598615
@@ -746,6 +763,39 @@ int main()
746763 assert (jni::Make<std::vector<jboolean>>(env, jni::Make<jni::Array<jni::jboolean>>(env, vec)) == vec);
747764
748765
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+
749799 jni::MakeNativeMethod<decltype (&Method), &Method>(" name" );
750800 jni::MakeNativeMethod<decltype (&StaticMethod), &StaticMethod>(" name" );
751801
0 commit comments