Home | History | Annotate | Download | only in util
      1 /*
      2  *  Licensed to the Apache Software Foundation (ASF) under one or more
      3  *  contributor license agreements.  See the NOTICE file distributed with
      4  *  this work for additional information regarding copyright ownership.
      5  *  The ASF licenses this file to You under the Apache License, Version 2.0
      6  *  (the "License"); you may not use this file except in compliance with
      7  *  the License.  You may obtain a copy of the License at
      8  *
      9  *     http://www.apache.org/licenses/LICENSE-2.0
     10  *
     11  *  Unless required by applicable law or agreed to in writing, software
     12  *  distributed under the License is distributed on an "AS IS" BASIS,
     13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     14  *  See the License for the specific language governing permissions and
     15  *  limitations under the License.
     16  */
     17 
     18 package org.apache.harmony.tests.java.util;
     19 
     20 import java.util.NoSuchElementException;
     21 import java.util.StringTokenizer;
     22 
     23 public class StringTokenizerTest extends junit.framework.TestCase {
     24 
     25     /**
     26      * java.util.StringTokenizer#StringTokenizer(java.lang.String)
     27      */
     28     public void test_ConstructorLjava_lang_String() {
     29         // Test for method java.util.StringTokenizer(java.lang.String)
     30         try {
     31             new StringTokenizer(null);
     32             fail("NullPointerException is not thrown.");
     33         } catch(NullPointerException npe) {
     34           //expected
     35         }
     36     }
     37 
     38     /**
     39      * java.util.StringTokenizer#StringTokenizer(java.lang.String,
     40      *        java.lang.String)
     41      */
     42     public void test_ConstructorLjava_lang_StringLjava_lang_String() {
     43         // Test for method java.util.StringTokenizer(java.lang.String,
     44         // java.lang.String)
     45         StringTokenizer st = new StringTokenizer("This:is:a:test:String", ":");
     46         assertTrue("Created incorrect tokenizer", st.countTokens() == 5
     47                 && (st.nextElement().equals("This")));
     48         st = new StringTokenizer("This:is:a:test:String", null);
     49 
     50         try {
     51             new StringTokenizer(null, ":");
     52             fail("NullPointerException expected");
     53         } catch (NullPointerException e) {
     54             //expected
     55         }
     56     }
     57 
     58     /**
     59      * java.util.StringTokenizer#StringTokenizer(java.lang.String,
     60      *        java.lang.String, boolean)
     61      */
     62     public void test_ConstructorLjava_lang_StringLjava_lang_StringZ() {
     63         // Test for method java.util.StringTokenizer(java.lang.String,
     64         // java.lang.String, boolean)
     65         StringTokenizer st = new StringTokenizer("This:is:a:test:String", ":",
     66                 true);
     67         st.nextElement();
     68         assertTrue("Created incorrect tokenizer", st.countTokens() == 8
     69                 && (st.nextElement().equals(":")));
     70         st = new StringTokenizer("This:is:a:test:String", null, true);
     71         st = new StringTokenizer("This:is:a:test:String", null, false);
     72 
     73         try {
     74             new StringTokenizer(null, ":", true);
     75             fail("NullPointerException expected");
     76         } catch (NullPointerException e) {
     77             //expected
     78         }
     79     }
     80 
     81     /**
     82      * java.util.StringTokenizer#countTokens()
     83      */
     84     public void test_countTokens() {
     85         // Test for method int java.util.StringTokenizer.countTokens()
     86         StringTokenizer st = new StringTokenizer("This is a test String");
     87 
     88         assertEquals("Incorrect token count returned", 5, st.countTokens());
     89     }
     90 
     91     /**
     92      * java.util.StringTokenizer#hasMoreElements()
     93      */
     94     public void test_hasMoreElements() {
     95         // Test for method boolean java.util.StringTokenizer.hasMoreElements()
     96 
     97         StringTokenizer st = new StringTokenizer("This is a test String");
     98         st.nextElement();
     99         assertTrue("hasMoreElements returned incorrect value", st
    100                 .hasMoreElements());
    101         st.nextElement();
    102         st.nextElement();
    103         st.nextElement();
    104         st.nextElement();
    105         assertTrue("hasMoreElements returned incorrect value", !st
    106                 .hasMoreElements());
    107     }
    108 
    109     /**
    110      * java.util.StringTokenizer#hasMoreTokens()
    111      */
    112     public void test_hasMoreTokens() {
    113         // Test for method boolean java.util.StringTokenizer.hasMoreTokens()
    114         StringTokenizer st = new StringTokenizer("This is a test String");
    115         for (int counter = 0; counter < 5; counter++) {
    116             assertTrue(
    117                     "StringTokenizer incorrectly reports it has no more tokens",
    118                     st.hasMoreTokens());
    119             st.nextToken();
    120         }
    121         assertTrue("StringTokenizer incorrectly reports it has more tokens",
    122                 !st.hasMoreTokens());
    123     }
    124 
    125     /**
    126      * java.util.StringTokenizer#nextElement()
    127      */
    128     public void test_nextElement() {
    129         // Test for method java.lang.Object
    130         // java.util.StringTokenizer.nextElement()
    131         StringTokenizer st = new StringTokenizer("This is a test String");
    132         assertEquals("nextElement returned incorrect value", "This", ((String) st
    133                 .nextElement()));
    134         assertEquals("nextElement returned incorrect value", "is", ((String) st
    135                 .nextElement()));
    136         assertEquals("nextElement returned incorrect value", "a", ((String) st
    137                 .nextElement()));
    138         assertEquals("nextElement returned incorrect value", "test", ((String) st
    139                 .nextElement()));
    140         assertEquals("nextElement returned incorrect value", "String", ((String) st
    141                 .nextElement()));
    142         try {
    143             st.nextElement();
    144             fail(
    145                     "nextElement failed to throw a NoSuchElementException when it should have been out of elements");
    146         } catch (NoSuchElementException e) {
    147             return;
    148         }
    149     }
    150 
    151     /**
    152      * java.util.StringTokenizer#nextToken()
    153      */
    154     public void test_nextToken() {
    155         // Test for method java.lang.String
    156         // java.util.StringTokenizer.nextToken()
    157         StringTokenizer st = new StringTokenizer("This is a test String");
    158         assertEquals("nextToken returned incorrect value",
    159                 "This", st.nextToken());
    160         assertEquals("nextToken returned incorrect value",
    161                 "is", st.nextToken());
    162         assertEquals("nextToken returned incorrect value",
    163                 "a", st.nextToken());
    164         assertEquals("nextToken returned incorrect value",
    165                 "test", st.nextToken());
    166         assertEquals("nextToken returned incorrect value",
    167                 "String", st.nextToken());
    168         try {
    169             st.nextToken();
    170             fail(
    171                     "nextToken failed to throw a NoSuchElementException when it should have been out of elements");
    172         } catch (NoSuchElementException e) {
    173             return;
    174         }
    175     }
    176 
    177     /**
    178      * java.util.StringTokenizer#nextToken(java.lang.String)
    179      */
    180     public void test_nextTokenLjava_lang_String() {
    181         // Test for method java.lang.String
    182         // java.util.StringTokenizer.nextToken(java.lang.String)
    183         StringTokenizer st = new StringTokenizer("This is a test String");
    184         assertEquals("nextToken(String) returned incorrect value with normal token String",
    185                 "This", st.nextToken(" "));
    186         assertEquals("nextToken(String) returned incorrect value with custom token String",
    187                 " is a ", st.nextToken("tr"));
    188         assertEquals("calling nextToken() did not use the new default delimiter list",
    189                 "es", st.nextToken());
    190         st = new StringTokenizer("This:is:a:test:String", " ");
    191         assertTrue(st.nextToken(":").equals("This"));
    192         assertTrue(st.nextToken(":").equals("is"));
    193         assertTrue(st.nextToken(":").equals("a"));
    194         assertTrue(st.nextToken(":").equals("test"));
    195         assertTrue(st.nextToken(":").equals("String"));
    196 
    197         try {
    198             st.nextToken(":");
    199             fail("NoSuchElementException expected");
    200         } catch (NoSuchElementException e) {
    201             //expected
    202         }
    203 
    204         try {
    205             st.nextToken(null);
    206             fail("NullPointerException expected");
    207         } catch (NullPointerException e) {
    208             //expected
    209         }
    210     }
    211 
    212     public void test_hasMoreElements_NPE() {
    213         StringTokenizer stringTokenizer = new StringTokenizer(new String(),
    214                 (String) null, true);
    215         try {
    216             stringTokenizer.hasMoreElements();
    217             fail("should throw NullPointerException");
    218         } catch (NullPointerException e) {
    219             // Expected
    220         }
    221 
    222         stringTokenizer = new StringTokenizer(new String(), (String) null);
    223         try {
    224             stringTokenizer.hasMoreElements();
    225             fail("should throw NullPointerException");
    226         } catch (NullPointerException e) {
    227             // Expected
    228         }
    229     }
    230 
    231     public void test_hasMoreTokens_NPE() {
    232         StringTokenizer stringTokenizer = new StringTokenizer(new String(),
    233                 (String) null, true);
    234         try {
    235             stringTokenizer.hasMoreTokens();
    236             fail("should throw NullPointerException");
    237         } catch (NullPointerException e) {
    238             // Expected
    239         }
    240 
    241         stringTokenizer = new StringTokenizer(new String(), (String) null);
    242         try {
    243             stringTokenizer.hasMoreTokens();
    244             fail("should throw NullPointerException");
    245         } catch (NullPointerException e) {
    246             // Expected
    247         }
    248     }
    249 
    250     public void test_nextElement_NPE() {
    251         StringTokenizer stringTokenizer = new StringTokenizer(new String(),
    252                 (String) null, true);
    253         try {
    254             stringTokenizer.nextElement();
    255             fail("should throw NullPointerException");
    256         } catch (NullPointerException e) {
    257             // Expected
    258         }
    259 
    260         stringTokenizer = new StringTokenizer(new String(), (String) null);
    261         try {
    262             stringTokenizer.nextElement();
    263             fail("should throw NullPointerException");
    264         } catch (NullPointerException e) {
    265             // Expected
    266         }
    267     }
    268 
    269     public void test_nextToken_NPE() {
    270         StringTokenizer stringTokenizer = new StringTokenizer(new String(),
    271                 (String) null, true);
    272         try {
    273             stringTokenizer.nextToken();
    274             fail("should throw NullPointerException");
    275         } catch (NullPointerException e) {
    276             // Expected
    277         }
    278 
    279         stringTokenizer = new StringTokenizer(new String(), (String) null);
    280         try {
    281             stringTokenizer.nextToken();
    282             fail("should throw NullPointerException");
    283         } catch (NullPointerException e) {
    284             // Expected
    285         }
    286     }
    287 
    288     public void test_nextTokenLjava_lang_String_NPE() {
    289         StringTokenizer stringTokenizer = new StringTokenizer(new String());
    290         try {
    291             stringTokenizer.nextToken(null);
    292             fail("should throw NullPointerException");
    293         } catch (NullPointerException e) {
    294             // Expected
    295         }
    296     }
    297 
    298     /**
    299      * Sets up the fixture, for example, open a network connection. This method
    300      * is called before a test is executed.
    301      */
    302     protected void setUp() {
    303     }
    304 
    305     /**
    306      * Tears down the fixture, for example, close a network connection. This
    307      * method is called after a test is executed.
    308      */
    309     protected void tearDown() {
    310     }
    311 }
    312