View Javadoc
1   package org.codehaus.plexus.util.cli;
2   
3   /*
4    * Copyright The Codehaus Foundation.
5    *
6    * Licensed under the Apache License, Version 2.0 (the "License");
7    * you may not use this file except in compliance with the License.
8    * You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  
19  import java.util.NoSuchElementException;
20  
21  import org.junit.jupiter.api.Test;
22  
23  import static org.junit.jupiter.api.Assertions.*;
24  
25  /**
26   * <p>EnhancedStringTokenizerTest class.</p>
27   *
28   * @author herve
29   * @since 3.4.0
30   */
31  class EnhancedStringTokenizerTest {
32  
33      @Test
34      void test1() {
35          EnhancedStringTokenizer est = new EnhancedStringTokenizer("this is a test string");
36          StringBuilder sb = new StringBuilder();
37          while (est.hasMoreTokens()) {
38              sb.append(est.nextToken());
39              sb.append(" ");
40          }
41          assertEquals("this is a test string ", sb.toString());
42      }
43  
44      @Test
45      void test2() {
46          EnhancedStringTokenizer est = new EnhancedStringTokenizer("1,,,3,,4", ",");
47          assertEquals("1", est.nextToken(), "Token 1");
48          assertEquals("", est.nextToken(), "Token 2");
49          assertEquals("", est.nextToken(), "Token 3");
50          assertEquals("3", est.nextToken(), "Token 4");
51          assertEquals("", est.nextToken(), "Token 5");
52          assertEquals("4", est.nextToken(), "Token 6");
53      }
54  
55      @Test
56      void test3() {
57          EnhancedStringTokenizer est = new EnhancedStringTokenizer("1,,,3,,4", ",", true);
58          assertEquals("1", est.nextToken(), "Token 1");
59          assertEquals(",", est.nextToken(), "Token 2");
60          assertEquals("", est.nextToken(), "Token 3");
61          assertEquals(",", est.nextToken(), "Token 4");
62          assertEquals("", est.nextToken(), "Token 5");
63          assertEquals(",", est.nextToken(), "Token 6");
64          assertEquals("3", est.nextToken(), "Token 7");
65          assertEquals(",", est.nextToken(), "Token 8");
66          assertEquals("", est.nextToken(), "Token 9");
67          assertEquals(",", est.nextToken(), "Token 10");
68          assertEquals("4", est.nextToken(), "Token 11");
69      }
70  
71      @Test
72      void multipleDelim() {
73          EnhancedStringTokenizer est = new EnhancedStringTokenizer("1 2|3|4", " |", true);
74          assertEquals("1", est.nextToken(), "Token 1");
75          assertEquals(" ", est.nextToken(), "Token 2");
76          assertEquals("2", est.nextToken(), "Token 3");
77          assertEquals("|", est.nextToken(), "Token 4");
78          assertEquals("3", est.nextToken(), "Token 5");
79          assertEquals("|", est.nextToken(), "Token 6");
80          assertEquals("4", est.nextToken(), "Token 7");
81          assertFalse(est.hasMoreTokens(), "est.hasMoreTokens()");
82      }
83  
84      @Test
85      void emptyString() {
86          EnhancedStringTokenizer est = new EnhancedStringTokenizer("");
87          assertFalse(est.hasMoreTokens(), "est.hasMoreTokens()");
88          assertThrows(NoSuchElementException.class, est::nextToken);
89      }
90  
91      @Test
92      void simpleString() {
93          EnhancedStringTokenizer est = new EnhancedStringTokenizer("a ");
94          assertEquals("a", est.nextToken(), "Token 1");
95          assertEquals("", est.nextToken(), "Token 2");
96          assertFalse(est.hasMoreTokens(), "est.hasMoreTokens()");
97      }
98  }