@Override public Object invoke(final V8Object receiver, final V8Array parameters) { V8ArrayBuffer arrayBuffer = new V8ArrayBuffer(v8, 8); arrayBuffer.put((byte) 8); return arrayBuffer; } };
@Test public void testInt8TypedArray_CustomOffset() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray v8Int8Array = new V8TypedArray(v8, buffer, V8Value.BYTE, 1, 1); buffer.put((byte) 4); buffer.put((byte) 8); assertEquals(1, v8Int8Array.length()); assertEquals((byte) 8, v8Int8Array.get(0)); buffer.close(); v8Int8Array.close(); }
@Test public void testAccessInt8TypedArrayInJavaScript() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 2); V8TypedArray v8Int8Array = new V8TypedArray(v8, buffer, V8Value.BYTE, 0, 2); v8.add("v8Int8Array", v8Int8Array); buffer.put((byte) 4); buffer.put((byte) 8); assertEquals(4, v8.executeIntegerScript("v8Int8Array[0];")); assertEquals(8, v8.executeIntegerScript("v8Int8Array[1];")); buffer.close(); v8Int8Array.close(); }
@Test public void testWriteInt8TypedArrayFromArrayBuffer() { V8ArrayBuffer buffer = new V8ArrayBuffer(v8, 8); V8TypedArray v8Int8Array = new V8TypedArray(v8, buffer, V8Value.BYTE, 0, 2); v8.add("v8Int8Array", v8Int8Array); buffer.put((byte) 4); buffer.put((byte) 8); assertEquals((byte) 4, v8Int8Array.get(0)); assertEquals((byte) 8, v8Int8Array.get(1)); buffer.close(); v8Int8Array.close(); }
@Test public void testTypedArrayInList() { TypedArray int8Array = new TypedArray(v8, new ArrayBuffer(v8, ByteBuffer.allocateDirect(8)), V8Value.INT_8_ARRAY, 0, 8); V8TypedArray v8TypedArray = int8Array.getV8TypedArray(); V8ArrayBuffer v8ArrayBuffer = v8TypedArray.getBuffer(); v8ArrayBuffer.put(0, (byte) 7); v8TypedArray.close(); v8ArrayBuffer.close(); List<Object> list = new ArrayList<Object>(); list.add(int8Array); V8Array array = V8ObjectUtils.toV8Array(v8, list); V8Array v8Array = (V8Array) array.get(0); assertEquals((byte) 7, v8Array.get(0)); assertEquals(V8Value.INT_8_ARRAY, v8Array.getType()); v8Array.close(); array.close(); }
@Test public void testTypedArrayInMap() { TypedArray int8Array = new TypedArray(v8, new ArrayBuffer(v8, ByteBuffer.allocateDirect(8)), V8Value.INT_8_ARRAY, 0, 8); V8TypedArray v8TypedArray = int8Array.getV8TypedArray(); V8ArrayBuffer v8ArrayBuffer = v8TypedArray.getBuffer(); v8ArrayBuffer.put(0, (byte) 7); v8TypedArray.close(); v8ArrayBuffer.close(); HashMap<String, Object> map = new HashMap<String, Object>(); map.put("array", int8Array); V8Object object = V8ObjectUtils.toV8Object(v8, map); V8TypedArray v8Array = (V8TypedArray) object.get("array"); assertEquals((byte) 7, v8Array.get(0)); assertEquals(V8Value.INT_8_ARRAY, v8Array.getType()); v8Array.close(); object.close(); }
@Test public void testGetTypedArray() { TypedArray int8Array = new TypedArray(v8, new ArrayBuffer(v8, ByteBuffer.allocateDirect(8)), V8Value.INT_8_ARRAY, 0, 8); V8TypedArray v8TypedArray = int8Array.getV8TypedArray(); V8ArrayBuffer v8ArrayBuffer = v8TypedArray.getBuffer(); v8ArrayBuffer.put(0, (byte) 7); v8TypedArray.close(); v8ArrayBuffer.close(); V8TypedArray v8Array = (V8TypedArray) V8ObjectUtils.getV8Result(v8, int8Array); assertEquals((byte) 7, v8Array.get(0)); assertEquals(V8Value.INT_8_ARRAY, v8Array.getType()); v8Array.close(); }