1dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes/* Licensed to the Apache Software Foundation (ASF) under one or more
2dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * contributor license agreements.  See the NOTICE file distributed with
3dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * this work for additional information regarding copyright ownership.
4dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0
5dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * (the "License"); you may not use this file except in compliance with
6dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * the License.  You may obtain a copy of the License at
7dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *
8dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
9dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes *
10dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * Unless required by applicable law or agreed to in writing, software
11dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * distributed under the License is distributed on an "AS IS" BASIS,
12dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * See the License for the specific language governing permissions and
14dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes * limitations under the License.
15dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes */
16e5fea3d504609d22337a5311d3ce0e72314bceeeNarayan Kamathpackage org.apache.harmony.tests.java.nio;
17dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
18dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.nio.ReadOnlyBufferException;
19dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughesimport java.nio.ShortBuffer;
20dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
21dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughespublic class ReadOnlyShortBufferTest extends ShortBufferTest {
22dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    protected void setUp() throws Exception {
23dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        super.setUp();
24dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        buf = buf.asReadOnlyBuffer();
25dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        baseBuf = buf;
26dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
27dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
28dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    protected void tearDown() throws Exception {
29dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        super.tearDown();
30dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
31dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
32dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testIsReadOnly() {
33dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertTrue(buf.isReadOnly());
34dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
35dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
36dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testHasArray() {
37dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertFalse(buf.hasArray());
38dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
39dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
40dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testArray() {
41dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
42dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.array();
43dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
44dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (ReadOnlyBufferException e) {
45dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            //expected
46dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
47dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
48dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
49dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testHashCode() {
50dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer duplicate = buf.duplicate();
51dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        assertEquals(buf.hashCode(), duplicate.hashCode());
52dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
53dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
54dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testArrayOffset() {
55dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
56dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.arrayOffset();
57dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
58dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (UnsupportedOperationException e) {
59dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            //expected
60dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
61dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
62dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
63dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testCompact() {
64dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
65dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.compact();
66dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
67dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (ReadOnlyBufferException e) {
68dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
69dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
70dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
71dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
72dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testPutshort() {
73dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
74dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put((short)0);
75dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
76dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (ReadOnlyBufferException e) {
77dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
78dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
79dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
80dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
81dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testPutshortArray() {
82dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        short array[] = new short[1];
83dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
84dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(array);
85dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
86dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (ReadOnlyBufferException e) {
87dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
88dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
89dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
90dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put((short[]) null);
91dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
92dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (NullPointerException e) {
93dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
94dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
95dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
96dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
97dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testPutshortArrayintint() {
98dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        short array[] = new short[1];
99dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
100dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(array, 0, array.length);
101dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
102dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (ReadOnlyBufferException e) {
103dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
104dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
105dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
106dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put((short[]) null, 0, 1);
107dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
108dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (ReadOnlyBufferException e) {
109dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
110dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
111dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
112dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(new short[buf.capacity() + 1], 0, buf.capacity() + 1);
113dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
114dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (ReadOnlyBufferException e) {
115dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
116dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
117dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
118dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(array, -1, array.length);
119dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
120dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (ReadOnlyBufferException e) {
121dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
122dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
123dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
124dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
125dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testPutShortBuffer() {
126dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        ShortBuffer other = ShortBuffer.allocate(1);
127dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
128dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(other);
129dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
130dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (ReadOnlyBufferException e) {
131dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
132dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
133dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
134dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put((ShortBuffer) null);
135dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
136dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (ReadOnlyBufferException e) {
137dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
138dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
139dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
140dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(buf);
141dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
142dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (ReadOnlyBufferException e) {
143dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
144dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
145dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
146dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes
147dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    public void testPutintshort() {
148dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
149dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(0, (short) 0);
150dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
151dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (ReadOnlyBufferException e) {
152dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
153dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
154dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        try {
155dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            buf.put(-1, (short) 0);
156dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
157dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        } catch (ReadOnlyBufferException e) {
158dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes            // expected
159dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes        }
160dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes    }
161dce2b2fa9d6b26414a8d5a55918e4d7ca2ab1baaElliott Hughes}
162