14c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson/* Licensed to the Apache Software Foundation (ASF) under one or more
24c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson * contributor license agreements.  See the NOTICE file distributed with
34c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson * this work for additional information regarding copyright ownership.
44c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson * The ASF licenses this file to You under the Apache License, Version 2.0
54c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson * (the "License"); you may not use this file except in compliance with
64c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson * the License.  You may obtain a copy of the License at
74c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson *
84c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson *     http://www.apache.org/licenses/LICENSE-2.0
94c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson *
104c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson * Unless required by applicable law or agreed to in writing, software
114c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS,
124c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson * See the License for the specific language governing permissions and
144c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson * limitations under the License.
154c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson */
164c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
174c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilsonpackage libcore.java.io;
184c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
194c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilsonimport java.io.IOException;
204c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilsonimport java.io.Reader;
214c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilsonimport java.nio.CharBuffer;
224c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
234c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilsonimport junit.framework.TestCase;
244c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilsonimport tests.support.Support_ASimpleReader;
254c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
264c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilsonpublic class OldReaderTest extends TestCase {
274c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
284c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    public void test_Reader() {
294c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        MockReader r = new MockReader();
304c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        assertTrue("Test 1: Lock has not been set correctly.", r.lockSet(r));
314c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    }
324c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
334c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    public void test_Reader_CharBufferChar() throws IOException {
344c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        Support_ASimpleReader simple;
354c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        simple = new Support_ASimpleReader("Bla bla, what else?");
364c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        CharBuffer buf = CharBuffer.allocate(4);
374c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        assertEquals("Wrong return value!", 4, simple.read(buf));
384c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        buf.rewind();
394c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        assertEquals("Wrong stuff read!", "Bla ", String.valueOf(buf));
404c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        simple.read(buf);
414c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        buf.rewind();
424c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        assertEquals("Wrong stuff read!", "bla,", String.valueOf(buf));
434c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        simple.throwExceptionOnNextUse = true;
444c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        try {
454c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson            simple.read(buf);
464c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson            fail("IOException not thrown!");
474c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        } catch (IOException expected) {
484c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        }
494c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    }
504c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
514c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    public void test_Read_$C() throws IOException {
524c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        Support_ASimpleReader simple;
534c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        simple = new Support_ASimpleReader("Bla bla, what else?");
544c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        char[] buf = new char[4];
554c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        assertEquals("Wrong return value!", 4, simple.read(buf));
564c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        assertEquals("Wrong stuff read!", "Bla ", new String(buf));
574c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        simple.read(buf);
584c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        assertEquals("Wrong stuff read!", "bla,", new String(buf));
594c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        simple.throwExceptionOnNextUse = true;
604c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        try {
614c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson            simple.read(buf);
624c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson            fail("IOException not thrown!");
634c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        } catch (IOException expected) {
644c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        }
654c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    }
664c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
674c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
684c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    public void test_markSupported() {
694c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        assertFalse("markSupported must return false", new MockReader().markSupported());
704c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    }
714c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
724c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    public void test_read() throws IOException {
734c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        Support_ASimpleReader simple = new Support_ASimpleReader("Bla bla, what else?");
744c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        int res = simple.read();
754c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        assertEquals("Wrong stuff read!", 'B', res);
764c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        res = simple.read();
774c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        assertEquals("Wrong stuff read!", 'l', res);
784c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        simple.throwExceptionOnNextUse = true;
794c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        try {
804c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson            simple.read();
814c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson            fail("IOException not thrown!");
824c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        } catch (IOException expected) {
834c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        }
844c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    }
854c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
864c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    public void test_ready() throws IOException {
874c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        Support_ASimpleReader simple = new Support_ASimpleReader("Bla bla, what else?");
884c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        simple.throwExceptionOnNextUse = true;
894c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        try {
904c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson            simple.ready();
914c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson            fail("IOException not thrown!");
924c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        } catch (IOException expected) {
934c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        }
944c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    }
954c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
964c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    public void test_skip() throws IOException {
974c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        Support_ASimpleReader simple = new Support_ASimpleReader("Bla bla, what else?");
984c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        char[] buf = new char[4];
994c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        simple.read(buf);
1004c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        assertEquals("Wrong stuff read!", "Bla ", new String(buf));
1014c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        simple.skip(5);
1024c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        simple.read(buf);
1034c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        assertEquals("Wrong stuff read!", "what", new String(buf));
1044c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        simple.throwExceptionOnNextUse = true;
1054c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        try {
1064c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson            simple.skip(1);
1074c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson            fail("IOException not thrown!");
1084c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        } catch (IOException expected) {
1094c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        }
1104c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    }
1114c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
1124c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    class MockReader extends Reader {
1134c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
1144c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        @Override public void close() {}
1154c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
1164c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        @Override public int read(char[] buf, int offset, int count) {
1174c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson            throw new UnsupportedOperationException();
1184c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        }
1194c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson
1204c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        public boolean lockSet(Object o) {
1214c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson            return (lock == o);
1224c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson        }
1234c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson    }
1244c51e7fd55db43a652e49c44b21bce9dee636385Jesse Wilson}
125