2 * Copyright 2015-present Open Networking Foundation
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package io.atomix.storage.buffer;
18 import org.junit.Test;
20 import java.nio.ByteBuffer;
22 import static org.junit.Assert.assertEquals;
27 * @author <a href="http://github.com/kuujo">Jordan Halterman</a>
29 public class HeapBufferTest extends BufferTest {
32 protected Buffer createBuffer(int capacity) {
33 return HeapBuffer.allocate(capacity);
37 protected Buffer createBuffer(int capacity, int maxCapacity) {
38 return HeapBuffer.allocate(capacity, maxCapacity);
42 public void testByteBufferToHeapBuffer() {
43 ByteBuffer byteBuffer = ByteBuffer.allocate(8);
44 byteBuffer.putLong(10);
47 HeapBuffer directBuffer = HeapBuffer.wrap(byteBuffer.array());
48 assertEquals(directBuffer.readLong(), byteBuffer.getLong());
52 public void testDirectToHeapBuffer() {
53 DirectBuffer directBuffer = DirectBuffer.allocate(8);
54 directBuffer.writeLong(10);
57 byte[] bytes = new byte[8];
58 directBuffer.read(bytes);
59 directBuffer.rewind();
61 HeapBuffer heapBuffer = HeapBuffer.wrap(bytes);
62 assertEquals(directBuffer.readLong(), heapBuffer.readLong());
64 directBuffer.release();
68 public void testHeapToDirectBuffer() {
69 HeapBuffer heapBuffer = HeapBuffer.allocate(8);
70 heapBuffer.writeLong(10);
73 DirectBuffer directBuffer = DirectBuffer.allocate(8);
74 directBuffer.write(heapBuffer.array());
77 assertEquals(directBuffer.readLong(), heapBuffer.readLong());
79 directBuffer.release();