1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/* Licensed to the Apache Software Foundation (ASF) under one or more
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * contributor license agreements.  See the NOTICE file distributed with
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * this work for additional information regarding copyright ownership.
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * The ASF licenses this file to You under the Apache License, Version 2.0
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * (the "License"); you may not use this file except in compliance with
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * the License.  You may obtain a copy of the License at
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * Unless required by applicable law or agreed to in writing, software
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * distributed under the License is distributed on an "AS IS" BASIS,
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * See the License for the specific language governing permissions and
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes * limitations under the License.
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.nio.tests.java.nio;
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.DoubleBuffer;
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.nio.ReadOnlyBufferException;
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class ReadOnlyDoubleBufferTest extends DoubleBufferTest {
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	protected void setUp() throws Exception {
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		super.setUp();
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		buf = buf.asReadOnlyBuffer();
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		baseBuf = buf;
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	protected void tearDown() throws Exception {
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		super.tearDown();
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testIsReadOnly() {
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertTrue(buf.isReadOnly());
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testHasArray() {
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertFalse(buf.hasArray());
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testArray() {
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.array();
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ReadOnlyBufferException e) {
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testHashCode() {
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        DoubleBuffer duplicate = buf.duplicate();
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        assertEquals(buf.hashCode(), duplicate.hashCode());
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testArrayOffset() {
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.arrayOffset();
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (UnsupportedOperationException e) {
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testCompact() {
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.compact();
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ReadOnlyBufferException e) {
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testPutdouble() {
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(0);
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ReadOnlyBufferException e) {
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testPutdoubleArray() {
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        double array[] = new double[1];
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(array);
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ReadOnlyBufferException e) {
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put((double[]) null);
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw Exception"); //$NON-NLS-1$
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (NullPointerException e) {
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testPutdoubleArrayintint() {
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        double array[] = new double[1];
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(array, 0, array.length);
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ReadOnlyBufferException e) {
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put((double[]) null, 0, 1);
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ReadOnlyBufferException e) {
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(new double[buf.capacity() + 1], 0, buf.capacity() + 1);
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ReadOnlyBufferException e) {
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(array, -1, array.length);
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ReadOnlyBufferException e) {
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testPutDoubleBuffer() {
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        DoubleBuffer other = DoubleBuffer.allocate(1);
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(other);
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ReadOnlyBufferException e) {
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put((DoubleBuffer) null);
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ReadOnlyBufferException e) {
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(buf);
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ReadOnlyBufferException e) {
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    public void testPutintdouble() {
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(0, (double) 0);
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ReadOnlyBufferException e) {
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        try {
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            buf.put(-1, (double) 0);
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            fail("Should throw ReadOnlyBufferException"); //$NON-NLS-1$
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        } catch (ReadOnlyBufferException e) {
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes            // expected
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes        }
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes    }
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
161