summaryrefslogtreecommitdiffstats
path: root/vespajlib/src/test/java/com/yahoo/io/reader/NamedReaderTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespajlib/src/test/java/com/yahoo/io/reader/NamedReaderTestCase.java')
-rw-r--r--vespajlib/src/test/java/com/yahoo/io/reader/NamedReaderTestCase.java131
1 files changed, 131 insertions, 0 deletions
diff --git a/vespajlib/src/test/java/com/yahoo/io/reader/NamedReaderTestCase.java b/vespajlib/src/test/java/com/yahoo/io/reader/NamedReaderTestCase.java
new file mode 100644
index 00000000000..280d0782bd2
--- /dev/null
+++ b/vespajlib/src/test/java/com/yahoo/io/reader/NamedReaderTestCase.java
@@ -0,0 +1,131 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.io.reader;
+
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+import java.nio.CharBuffer;
+import java.util.Collections;
+
+import com.yahoo.io.reader.NamedReader;
+import com.yahoo.protect.ClassValidator;
+
+/**
+ * Tests all method of NamedReader.
+ *
+ * @author <a href="mailto:bratseth@yahoo-inc.com">Jon Bratseth</a>
+ * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a>
+ */
+public class NamedReaderTestCase extends junit.framework.TestCase {
+
+ public void testIt() {
+ StringReader stringReader=new StringReader("hello world");
+ NamedReader r=new NamedReader("test1",stringReader);
+ assertEquals("test1",r.getName());
+ assertEquals("test1",r.toString());
+ assertEquals(stringReader,r.getReader());
+ NamedReader.closeAll(Collections.singletonList(r));
+ NamedReader.closeAll(null); // noop, nor exception
+ }
+
+ public void testMethodMasking() {
+ assertEquals(0,
+ ClassValidator.unmaskedMethodsFromSuperclass(NamedReader.class).size());
+ }
+
+ private static class MarkerReader extends Reader {
+ static final String READ_CHAR_BUFFER = "com.yahoo.io.reader.NamedReaderTestCase.MarkerReader.read(CharBuffer)";
+ static final String READ = "com.yahoo.io.reader.NamedReaderTestCase.MarkerReader.read()";
+ static final String READ_CHAR = "com.yahoo.io.reader.NamedReaderTestCase.MarkerReader.read(char[])";
+ static final String READ_CHAR_INT_INT = "com.yahoo.io.reader.NamedReaderTestCase.MarkerReader.read(char[], int, int)";
+ static final String SKIP_LONG = "com.yahoo.io.reader.NamedReaderTestCase.MarkerReader.skip(long)";
+ static final String READY = "com.yahoo.io.reader.NamedReaderTestCase.MarkerReader.ready()";
+ static final String MARK_SUPPORTED = "com.yahoo.io.reader.NamedReaderTestCase.MarkerReader.markSupported()";
+ static final String MARK_INT = "com.yahoo.io.reader.NamedReaderTestCase.MarkerReader.mark(int)";
+ static final String RESET = "com.yahoo.io.reader.NamedReaderTestCase.MarkerReader.reset()";
+ static final String CLOSE = "com.yahoo.io.reader.NamedReaderTestCase.MarkerReader.close()";
+ String lastMethodHit = null;
+
+ @Override
+ public int read(CharBuffer target) throws IOException {
+ lastMethodHit = READ_CHAR_BUFFER;
+ return 0;
+ }
+
+ @Override
+ public int read() throws IOException {
+ lastMethodHit = READ;
+ return -1;
+ }
+
+ @Override
+ public int read(char[] cbuf) throws IOException {
+ lastMethodHit = READ_CHAR;
+ return 0;
+ }
+
+ @Override
+ public int read(char[] cbuf, int off, int len) throws IOException {
+ lastMethodHit = READ_CHAR_INT_INT;
+ return 0;
+ }
+
+ @Override
+ public long skip(long n) throws IOException {
+ lastMethodHit = SKIP_LONG;
+ return 0;
+ }
+
+ @Override
+ public boolean ready() throws IOException {
+ lastMethodHit = READY;
+ return false;
+ }
+
+ @Override
+ public boolean markSupported() {
+ lastMethodHit = MARK_SUPPORTED;
+ return false;
+ }
+
+ @Override
+ public void mark(int readAheadLimit) throws IOException {
+ lastMethodHit = MARK_INT;
+ }
+
+ @Override
+ public void reset() throws IOException {
+ lastMethodHit = RESET;
+ }
+
+ @Override
+ public void close() throws IOException {
+ lastMethodHit = CLOSE;
+ }
+ }
+
+ public void testAllDelegators() throws IOException {
+ MarkerReader m = new MarkerReader();
+ NamedReader r = new NamedReader("nalle", m);
+ r.read(CharBuffer.allocate(5000));
+ assertEquals(MarkerReader.READ_CHAR_BUFFER, m.lastMethodHit);
+ r.read();
+ assertEquals(MarkerReader.READ, m.lastMethodHit);
+ r.read(new char[5]);
+ assertEquals(MarkerReader.READ_CHAR, m.lastMethodHit);
+ r.read(new char[5], 0, 5);
+ assertEquals(MarkerReader.READ_CHAR_INT_INT, m.lastMethodHit);
+ r.skip(5L);
+ assertEquals(MarkerReader.SKIP_LONG, m.lastMethodHit);
+ r.ready();
+ assertEquals(MarkerReader.READY, m.lastMethodHit);
+ r.markSupported();
+ assertEquals(MarkerReader.MARK_SUPPORTED, m.lastMethodHit);
+ r.mark(5);
+ assertEquals(MarkerReader.MARK_INT, m.lastMethodHit);
+ r.reset();
+ assertEquals(MarkerReader.RESET, m.lastMethodHit);
+ r.close();
+ assertEquals(MarkerReader.CLOSE, m.lastMethodHit);
+ }
+}