summaryrefslogtreecommitdiffstats
path: root/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/StringCharacterIteratorTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'harmony-tests/src/test/java/org/apache/harmony/tests/java/text/StringCharacterIteratorTest.java')
-rw-r--r--harmony-tests/src/test/java/org/apache/harmony/tests/java/text/StringCharacterIteratorTest.java521
1 files changed, 521 insertions, 0 deletions
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/StringCharacterIteratorTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/StringCharacterIteratorTest.java
new file mode 100644
index 0000000..0108089
--- /dev/null
+++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/text/StringCharacterIteratorTest.java
@@ -0,0 +1,521 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.harmony.tests.java.text;
+
+import java.text.CharacterIterator;
+import java.text.StringCharacterIterator;
+
+import junit.framework.TestCase;
+
+public class StringCharacterIteratorTest extends TestCase {
+
+ /**
+ * @tests java.text.StringCharacterIterator.StringCharacterIterator(String,
+ * int)
+ */
+ public void test_ConstructorI() {
+ assertNotNull(new StringCharacterIterator("value", 0));
+ assertNotNull(new StringCharacterIterator("value", "value".length()));
+ assertNotNull(new StringCharacterIterator("", 0));
+ try {
+ new StringCharacterIterator(null, 0);
+ fail("Assert 0: no null pointer");
+ } catch (NullPointerException e) {
+ // expected
+ }
+
+ try {
+ new StringCharacterIterator("value", -1);
+ fail("Assert 1: no illegal argument");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+
+ try {
+ new StringCharacterIterator("value", "value".length() + 1);
+ fail("Assert 2: no illegal argument");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator(String, int, int, int)
+ */
+ public void test_ConstructorIII() {
+ assertNotNull(new StringCharacterIterator("value", 0, "value".length(),
+ 0));
+ assertNotNull(new StringCharacterIterator("value", 0, "value".length(),
+ 1));
+ assertNotNull(new StringCharacterIterator("", 0, 0, 0));
+
+ try {
+ new StringCharacterIterator(null, 0, 0, 0);
+ fail("no null pointer");
+ } catch (NullPointerException e) {
+ // Expected
+ }
+
+ try {
+ new StringCharacterIterator("value", -1, "value".length(), 0);
+ fail("no illegal argument: invalid begin");
+ } catch (IllegalArgumentException e) {
+ // Expected
+ }
+
+ try {
+ new StringCharacterIterator("value", 0, "value".length() + 1, 0);
+ fail("no illegal argument: invalid end");
+ } catch (IllegalArgumentException e) {
+ // Expected
+ }
+
+ try {
+ new StringCharacterIterator("value", 2, 1, 0);
+ fail("no illegal argument: start greater than end");
+ } catch (IllegalArgumentException e) {
+ // Expected
+ }
+
+ try {
+ new StringCharacterIterator("value", 2, 1, 2);
+ fail("no illegal argument: start greater than end");
+ } catch (IllegalArgumentException e) {
+ // Expected
+ }
+
+ try {
+ new StringCharacterIterator("value", 2, 4, 1);
+ fail("no illegal argument: location greater than start");
+ } catch (IllegalArgumentException e) {
+ // Expected
+ }
+
+ try {
+ new StringCharacterIterator("value", 0, 2, 3);
+ fail("no illegal argument: location greater than start");
+ } catch (IllegalArgumentException e) {
+ // Expected
+ }
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator.equals(Object)
+ */
+ public void test_equalsLjava_lang_Object() {
+ StringCharacterIterator sci0 = new StringCharacterIterator("fixture");
+ assertEquals(sci0, sci0);
+ assertFalse(sci0.equals(null));
+ assertFalse(sci0.equals("fixture"));
+
+ StringCharacterIterator sci1 = new StringCharacterIterator("fixture");
+ assertEquals(sci0, sci1);
+
+ sci1.next();
+ assertFalse(sci0.equals(sci1));
+ sci0.next();
+ assertEquals(sci0, sci1);
+
+ StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
+ 6, 4);
+ StringCharacterIterator it2 = new StringCharacterIterator("xxstinx", 2,
+ 6, 4);
+ assertTrue("Range is equal", !it1.equals(it2));
+ StringCharacterIterator it3 = new StringCharacterIterator("testing", 2,
+ 6, 2);
+ it3.setIndex(4);
+ assertTrue("Not equal", it1.equals(it3));
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator.clone()
+ */
+ public void test_clone() {
+ StringCharacterIterator sci0 = new StringCharacterIterator("fixture");
+ assertSame(sci0, sci0);
+ StringCharacterIterator sci1 = (StringCharacterIterator) sci0.clone();
+ assertNotSame(sci0, sci1);
+ assertEquals(sci0, sci1);
+
+ StringCharacterIterator it = new StringCharacterIterator("testing", 2,
+ 6, 4);
+ StringCharacterIterator clone = (StringCharacterIterator) it.clone();
+ assertTrue("Clone not equal", it.equals(clone));
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator.current()
+ */
+ public void test_current() {
+ StringCharacterIterator fixture = new StringCharacterIterator("fixture");
+ assertEquals('f', fixture.current());
+ fixture.next();
+ assertEquals('i', fixture.current());
+
+ StringCharacterIterator it =
+ new StringCharacterIterator("testing", 2, 6, 4);
+ assertEquals("Wrong current char", 'i', it.current());
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator.first()
+ */
+ public void test_first() {
+ StringCharacterIterator fixture = new StringCharacterIterator("fixture");
+ assertEquals('f', fixture.first());
+ fixture.next();
+ assertEquals('f', fixture.first());
+ fixture = new StringCharacterIterator("fixture", 1);
+ assertEquals('f', fixture.first());
+ fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
+ 2);
+ assertEquals('i', fixture.first());
+
+ StringCharacterIterator it1 =
+ new StringCharacterIterator("testing", 2, 6, 4);
+ assertEquals("Wrong first char", 's', it1.first());
+ assertEquals("Wrong next char", 't', it1.next());
+ it1 = new StringCharacterIterator("testing", 2, 2, 2);
+ assertTrue("Not DONE", it1.first() == CharacterIterator.DONE);
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator.getBeginIndex()
+ */
+ public void test_getBeginIndex() {
+ StringCharacterIterator fixture = new StringCharacterIterator("fixture");
+ assertEquals(0, fixture.getBeginIndex());
+ fixture = new StringCharacterIterator("fixture", 1);
+ assertEquals(0, fixture.getBeginIndex());
+ fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
+ 2);
+ assertEquals(1, fixture.getBeginIndex());
+
+ StringCharacterIterator it1 =
+ new StringCharacterIterator("testing", 2, 6, 4);
+ assertEquals("Wrong begin index 2", 2, it1.getBeginIndex());
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator.getEndIndex()
+ */
+ public void test_getEndIndex() {
+ StringCharacterIterator fixture = new StringCharacterIterator("fixture");
+ assertEquals("fixture".length(), fixture.getEndIndex());
+ fixture = new StringCharacterIterator("fixture", 1);
+ assertEquals("fixture".length(), fixture.getEndIndex());
+ fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
+ 2);
+ assertEquals("fixture".length(), fixture.getEndIndex());
+ fixture = new StringCharacterIterator("fixture", 1, 4, 2);
+ assertEquals(4, fixture.getEndIndex());
+
+ StringCharacterIterator it1 =
+ new StringCharacterIterator("testing", 2, 6, 4);
+ assertEquals("Wrong end index 6", 6, it1.getEndIndex());
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator.getIndex()
+ */
+ public void testGetIndex() {
+ StringCharacterIterator fixture = new StringCharacterIterator("fixture");
+ assertEquals(0, fixture.getIndex());
+ fixture = new StringCharacterIterator("fixture", 1);
+ assertEquals(1, fixture.getIndex());
+ fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
+ 2);
+ assertEquals(2, fixture.getIndex());
+ fixture = new StringCharacterIterator("fixture", 1, 4, 2);
+ assertEquals(2, fixture.getIndex());
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator.last()
+ */
+ public void testLast() {
+ StringCharacterIterator fixture = new StringCharacterIterator("fixture");
+ assertEquals('e', fixture.last());
+ fixture.next();
+ assertEquals('e', fixture.last());
+ fixture = new StringCharacterIterator("fixture", 1);
+ assertEquals('e', fixture.last());
+ fixture = new StringCharacterIterator("fixture", 1, "fixture".length(),
+ 2);
+ assertEquals('e', fixture.last());
+ fixture = new StringCharacterIterator("fixture", 1, 4, 2);
+ assertEquals('t', fixture.last());
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator.next()
+ */
+ public void test_next() {
+ StringCharacterIterator fixture = new StringCharacterIterator("fixture");
+ assertEquals(0, fixture.getIndex());
+ assertEquals('i', fixture.next());
+ assertEquals(1, fixture.getIndex());
+ assertEquals('x', fixture.next());
+ assertEquals(2, fixture.getIndex());
+ assertEquals('t', fixture.next());
+ assertEquals(3, fixture.getIndex());
+ assertEquals('u', fixture.next());
+ assertEquals(4, fixture.getIndex());
+ assertEquals('r', fixture.next());
+ assertEquals(5, fixture.getIndex());
+ assertEquals('e', fixture.next());
+ assertEquals(6, fixture.getIndex());
+ assertEquals(CharacterIterator.DONE, fixture.next());
+ assertEquals(7, fixture.getIndex());
+ assertEquals(CharacterIterator.DONE, fixture.next());
+ assertEquals(7, fixture.getIndex());
+ assertEquals(CharacterIterator.DONE, fixture.next());
+ assertEquals(7, fixture.getIndex());
+
+ StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
+ 6, 3);
+ char result = it1.next();
+ assertEquals("Wrong next char1", 'i', result);
+ assertEquals("Wrong next char2", 'n', it1.next());
+ assertTrue("Wrong next char3", it1.next() == CharacterIterator.DONE);
+ assertTrue("Wrong next char4", it1.next() == CharacterIterator.DONE);
+ int index = it1.getIndex();
+ assertEquals("Wrong index", 6, index);
+ assertTrue("Wrong current char",
+ it1.current() == CharacterIterator.DONE);
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator.previous()
+ */
+ public void test_previous() {
+ StringCharacterIterator fixture = new StringCharacterIterator("fixture");
+ assertEquals(CharacterIterator.DONE, fixture.previous());
+ assertEquals('i', fixture.next());
+ assertEquals('x', fixture.next());
+ assertEquals('t', fixture.next());
+ assertEquals('u', fixture.next());
+ assertEquals('r', fixture.next());
+ assertEquals('e', fixture.next());
+ assertEquals(CharacterIterator.DONE, fixture.next());
+ assertEquals(CharacterIterator.DONE, fixture.next());
+ assertEquals(CharacterIterator.DONE, fixture.next());
+ assertEquals(7, fixture.getIndex());
+ assertEquals('e', fixture.previous());
+ assertEquals(6, fixture.getIndex());
+ assertEquals('r', fixture.previous());
+ assertEquals(5, fixture.getIndex());
+ assertEquals('u', fixture.previous());
+ assertEquals(4, fixture.getIndex());
+ assertEquals('t', fixture.previous());
+ assertEquals(3, fixture.getIndex());
+ assertEquals('x', fixture.previous());
+ assertEquals(2, fixture.getIndex());
+ assertEquals('i', fixture.previous());
+ assertEquals(1, fixture.getIndex());
+ assertEquals('f', fixture.previous());
+ assertEquals(0, fixture.getIndex());
+ assertEquals(CharacterIterator.DONE, fixture.previous());
+ assertEquals(0, fixture.getIndex());
+
+ StringCharacterIterator it1 =
+ new StringCharacterIterator("testing", 2, 6, 4);
+ assertEquals("Wrong previous char1", 't', it1.previous());
+ assertEquals("Wrong previous char2", 's', it1.previous());
+ assertTrue("Wrong previous char3",
+ it1.previous() == CharacterIterator.DONE);
+ assertTrue("Wrong previous char4",
+ it1.previous() == CharacterIterator.DONE);
+ assertEquals("Wrong index", 2, it1.getIndex());
+ assertEquals("Wrong current char", 's', it1.current());
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator.setIndex(int)
+ */
+ public void test_setIndex() {
+ StringCharacterIterator fixture = new StringCharacterIterator("fixture");
+ while (fixture.next() != CharacterIterator.DONE) {
+ // empty
+ }
+ assertEquals("fixture".length(), fixture.getIndex());
+ fixture.setIndex(0);
+ assertEquals(0, fixture.getIndex());
+ assertEquals('f', fixture.current());
+ fixture.setIndex("fixture".length() - 1);
+ assertEquals('e', fixture.current());
+ try {
+ fixture.setIndex(-1);
+ fail("no illegal argument");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+
+ try {
+ fixture.setIndex("fixture".length() + 1);
+ fail("no illegal argument");
+ } catch (IllegalArgumentException e) {
+ // expected
+ }
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator.setText(String)
+ */
+ public void test_setText() {
+ StringCharacterIterator fixture = new StringCharacterIterator("fixture");
+ fixture.setText("fix");
+ assertEquals('f', fixture.current());
+ assertEquals('x', fixture.last());
+
+ try {
+ fixture.setText(null);
+ fail("no null pointer");
+ } catch (NullPointerException e) {
+ // expected
+ }
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator#StringCharacterIterator(java.lang.String)
+ */
+ public void test_ConstructorLjava_lang_String() {
+ assertNotNull(new StringCharacterIterator("value"));
+ assertNotNull(new StringCharacterIterator(""));
+ try {
+ new StringCharacterIterator(null);
+ fail("Assert 0: no null pointer");
+ } catch (NullPointerException e) {
+ // expected
+ }
+
+ StringCharacterIterator it = new StringCharacterIterator("testing");
+ assertEquals("Wrong begin index", 0, it.getBeginIndex());
+ assertEquals("Wrong end index", 7, it.getEndIndex());
+ assertEquals("Wrong current index", 0, it.getIndex());
+ assertEquals("Wrong current char", 't', it.current());
+ assertEquals("Wrong next char", 'e', it.next());
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator#StringCharacterIterator(java.lang.String,
+ * int)
+ */
+ public void test_ConstructorLjava_lang_StringI() {
+ StringCharacterIterator it = new StringCharacterIterator("testing", 3);
+ assertEquals("Wrong begin index", 0, it.getBeginIndex());
+ assertEquals("Wrong end index", 7, it.getEndIndex());
+ assertEquals("Wrong current index", 3, it.getIndex());
+ assertEquals("Wrong current char", 't', it.current());
+ assertEquals("Wrong next char", 'i', it.next());
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator#StringCharacterIterator(java.lang.String,
+ * int, int, int)
+ */
+ public void test_ConstructorLjava_lang_StringIII() {
+ StringCharacterIterator it = new StringCharacterIterator("testing", 2,
+ 6, 4);
+ assertEquals("Wrong begin index", 2, it.getBeginIndex());
+ assertEquals("Wrong end index", 6, it.getEndIndex());
+ assertEquals("Wrong current index", 4, it.getIndex());
+ assertEquals("Wrong current char", 'i', it.current());
+ assertEquals("Wrong next char", 'n', it.next());
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator#getIndex()
+ */
+ public void test_getIndex() {
+ StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
+ 6, 4);
+ assertEquals("Wrong index 4", 4, it1.getIndex());
+ it1.next();
+ assertEquals("Wrong index 5", 5, it1.getIndex());
+ it1.last();
+ assertEquals("Wrong index 4/2", 5, it1.getIndex());
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator#hashCode()
+ */
+ public void test_hashCode() {
+ StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
+ 6, 4);
+ StringCharacterIterator it2 = new StringCharacterIterator("xxstinx", 2,
+ 6, 4);
+ assertTrue("Hash is equal", it1.hashCode() != it2.hashCode());
+ StringCharacterIterator it3 = new StringCharacterIterator("testing", 2,
+ 6, 2);
+ assertTrue("Hash equal1", it1.hashCode() != it3.hashCode());
+ it3 = new StringCharacterIterator("testing", 0, 6, 4);
+ assertTrue("Hash equal2", it1.hashCode() != it3.hashCode());
+ it3 = new StringCharacterIterator("testing", 2, 5, 4);
+ assertTrue("Hash equal3", it1.hashCode() != it3.hashCode());
+ it3 = new StringCharacterIterator("froging", 2, 6, 4);
+ assertTrue("Hash equal4", it1.hashCode() != it3.hashCode());
+
+ StringCharacterIterator sci0 = new StringCharacterIterator("fixture");
+ assertEquals(sci0.hashCode(), sci0.hashCode());
+
+ StringCharacterIterator sci1 = new StringCharacterIterator("fixture");
+ assertEquals(sci0.hashCode(), sci1.hashCode());
+
+ sci1.next();
+ sci0.next();
+ assertEquals(sci0.hashCode(), sci1.hashCode());
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator#last()
+ */
+ public void test_last() {
+ StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
+ 6, 3);
+ assertEquals("Wrong last char", 'n', it1.last());
+ assertEquals("Wrong previous char", 'i', it1.previous());
+ it1 = new StringCharacterIterator("testing", 2, 2, 2);
+ assertTrue("Not DONE", it1.last() == CharacterIterator.DONE);
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator#setIndex(int)
+ */
+ public void test_setIndexI() {
+ StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
+ 6, 4);
+ assertEquals("Wrong result1", 's', it1.setIndex(2));
+ char result = it1.next();
+ assertTrue("Wrong next char: " + result, result == 't');
+ assertTrue("Wrong result2", it1.setIndex(6) == CharacterIterator.DONE);
+ assertEquals("Wrong previous char", 'n', it1.previous());
+ }
+
+ /**
+ * @tests java.text.StringCharacterIterator#setText(java.lang.String)
+ */
+ public void test_setTextLjava_lang_String() {
+ StringCharacterIterator it1 = new StringCharacterIterator("testing", 2,
+ 6, 4);
+ it1.setText("frog");
+ assertEquals("Wrong begin index", 0, it1.getBeginIndex());
+ assertEquals("Wrong end index", 4, it1.getEndIndex());
+ assertEquals("Wrong current index", 0, it1.getIndex());
+ }
+}