* FYI: New CharBuffer test
@ 2007-04-12 20:33 Roman Kennke
0 siblings, 0 replies; only message in thread
From: Roman Kennke @ 2007-04-12 20:33 UTC (permalink / raw)
To: mauve-patches
[-- Attachment #1.1: Type: text/plain, Size: 525 bytes --]
This adds a comprehensive testcase for a CharBuffer that wraps a
CharSequence.
2007-04-12 Roman Kennke <kennke@aicas.com>
* gnu/testlet/java/nio/CharBuffer/CharSequenceWrapper.java:
New testcase for testing wrapped CharSequences.
/Roman
--
aicas Allerton Interworks Computer Automated Systems GmbH
Haid-und-Neu-Straße 18 * D-76131 Karlsruhe * Germany
http://www.aicas.com * Tel: +49-721-663 968-0
USt-Id: DE216375633, Handelsregister HRB 109481, AG Karlsruhe
Geschäftsführer: Dr. James J. Hunt
[-- Attachment #1.2: patch.diff --]
[-- Type: text/x-patch, Size: 5148 bytes --]
Index: gnu/testlet/java/nio/CharBuffer/CharSequenceWrapper.java
===================================================================
RCS file: gnu/testlet/java/nio/CharBuffer/CharSequenceWrapper.java
diff -N gnu/testlet/java/nio/CharBuffer/CharSequenceWrapper.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/java/nio/CharBuffer/CharSequenceWrapper.java 12 Apr 2007 20:31:14 -0000
@@ -0,0 +1,186 @@
+/* CharSequenceWrapper.java -- Tests the CharSequence wrapping CharBuffer
+ Copyright (C) 2007 Roman Kennke (kennke@aicas.com)
+This file is part of Mauve.
+
+Mauve is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+Mauve is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with Mauve; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+*/
+
+// Tags: JDK1.4
+
+package gnu.testlet.java.nio.CharBuffer;
+
+import java.nio.CharBuffer;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+/**
+ * This tests the CharBuffer that wraps a CharSequence.
+ *
+ * @author Roman Kennke (kennke@aicas.com)
+ *
+ */
+public class CharSequenceWrapper implements Testlet
+{
+
+ public void test(TestHarness harness)
+ {
+ testSlice(harness);
+ testDuplicate(harness);
+ testBasic(harness);
+ }
+
+ /**
+ * Tests some basic properties of a char sequence wrapping char buffer.
+ *
+ * @param h the test harness
+ */
+ private void testBasic(TestHarness h)
+ {
+ h.checkPoint("testBasic");
+ StringBuilder b = new StringBuilder("Hello World");
+ CharBuffer cb = CharBuffer.wrap(b, 4, 7);
+ try
+ {
+ cb.arrayOffset();
+ h.fail("testBasic");
+ }
+ catch (UnsupportedOperationException ex)
+ {
+ h.check(true);
+ }
+ try
+ {
+ cb.array();
+ h.fail("testBasic");
+ }
+ catch (UnsupportedOperationException ex)
+ {
+ h.check(true);
+ }
+ h.check(cb.capacity(), b.length());
+ h.check(cb.hasArray(), false);
+ h.check(cb.hasRemaining(), true);
+ h.check(cb.isDirect(), false);
+ h.check(cb.isReadOnly(), true);
+ h.check(cb.length(), 3);
+ h.check(cb.limit(), 7);
+ h.check(cb.position(), 4);
+ h.check(cb.remaining(), 3);
+ try
+ {
+ cb.compact();
+ h.fail("testBasic");
+ }
+ catch (UnsupportedOperationException ex)
+ {
+ h.check(true);
+ }
+ }
+
+ /**
+ * Tests how slicing affects the wrapped char buffer.
+ *
+ * @param h the test harness
+ */
+ private void testSlice(TestHarness h)
+ {
+ StringBuilder b = new StringBuilder("Hello World");
+ CharBuffer cb = CharBuffer.wrap(b);
+ cb.position(4);
+ cb.limit(7);
+ CharBuffer slice = cb.slice();
+
+ h.check(slice.capacity(), 3);
+ try
+ {
+ slice.arrayOffset();
+ h.fail("testSlice");
+ }
+ catch (UnsupportedOperationException ex)
+ {
+ h.check(true);
+ }
+ h.check(slice.hasArray(), false);
+ try
+ {
+ slice.array();
+ h.fail("testSlice");
+ }
+ catch (UnsupportedOperationException ex)
+ {
+ h.check(true);
+ }
+ h.check(slice.isDirect(), false);
+ h.check(slice.isReadOnly(), true);
+ h.check(slice.length(), 3);
+ h.check(slice.limit(), 3);
+ h.check(slice.position(), 0);
+
+ // This shows a JDK bug..
+ h.check(slice.get(), 'o');
+ h.check(slice.get(), ' ');
+ h.check(slice.get(), 'W');
+
+ }
+
+ /**
+ * Tests how duplicating affects the wrapped char buffer.
+ *
+ * @param h the test harness
+ */
+ private void testDuplicate(TestHarness h)
+ {
+ StringBuilder b = new StringBuilder("Hello World");
+ CharBuffer cb = CharBuffer.wrap(b);
+ cb.position(4);
+ cb.limit(7);
+ CharBuffer dup = cb.duplicate();
+
+ h.check(dup.capacity(), 11);
+ try
+ {
+ dup.arrayOffset();
+ h.fail("testDuplicate");
+ }
+ catch (UnsupportedOperationException ex)
+ {
+ h.check(true);
+ }
+ h.check(dup.hasArray(), false);
+ try
+ {
+ dup.array();
+ h.fail("testSlice");
+ }
+ catch (UnsupportedOperationException ex)
+ {
+ h.check(true);
+ }
+ h.check(dup.isDirect(), false);
+ h.check(dup.isReadOnly(), true);
+ h.check(dup.length(), 3);
+ h.check(dup.limit(), 7);
+ h.check(dup.position(), 4);
+
+ h.check(dup.get(), 'o');
+ h.check(dup.get(), ' ');
+ h.check(dup.get(), 'W');
+
+ }
+
+}
[-- Attachment #2: Dies ist ein digital signierter Nachrichtenteil --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-04-12 20:33 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-04-12 20:33 FYI: New CharBuffer test Roman Kennke
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).