Gridarta Editor
StringUtilsTest.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2023 The Gridarta Developers.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 package net.sf.gridarta.utils;
21 
22 import org.jetbrains.annotations.NotNull;
23 import org.jetbrains.annotations.Nullable;
24 import org.junit.Assert;
25 import org.junit.Test;
26 
31 @SuppressWarnings("JavaDoc")
32 public class StringUtilsTest {
33 
37  @Test
39  testRemoveTrailingWhitespace("", "");
40  testRemoveTrailingWhitespace(" ", "");
41  testRemoveTrailingWhitespace(" abc def ", " abc def");
42  testRemoveTrailingWhitespace(" abc \n def ", " abc \n def");
43  }
44 
50  private static void testRemoveTrailingWhitespace(final CharSequence input, final String output) {
51  Assert.assertEquals(output, StringUtils.removeTrailingWhitespace(input));
52  }
53 
57  @Test
59  testRemoveTrailingWhitespaceFromLines("", "");
60  testRemoveTrailingWhitespaceFromLines(" ", "");
61  testRemoveTrailingWhitespaceFromLines(" abc def ", " abc def");
62  testRemoveTrailingWhitespaceFromLines("\n", "\n");
63  testRemoveTrailingWhitespaceFromLines("abc\n" + "def\n" + "ghi\n", "abc\n" + "def\n" + "ghi\n");
64  testRemoveTrailingWhitespaceFromLines(" abc\n" + "def\n" + "ghi\n", " abc\n" + "def\n" + "ghi\n");
65  testRemoveTrailingWhitespaceFromLines("abc \n" + "def\n" + "ghi\n", "abc\n" + "def\n" + "ghi\n");
66  testRemoveTrailingWhitespaceFromLines(" abc \n d e f \n g h i \n ", " abc\n d e f\n g h i\n");
67  }
68 
74  private static void testRemoveTrailingWhitespaceFromLines(@NotNull final CharSequence input, @NotNull final String output) {
75  Assert.assertEquals(output, StringUtils.removeTrailingWhitespaceFromLines(input));
76  }
77 
81  @Test
82  public void testEnsureTrailingNewline() {
83  testEnsureTrailingNewline("", "");
84  testEnsureTrailingNewline("\n", "\n");
85  testEnsureTrailingNewline(" abc def ", " abc def \n");
86  testEnsureTrailingNewline("\n\n\n", "\n\n\n");
87  testEnsureTrailingNewline("abc\n\n" + "def", "abc\n\n" + "def\n");
88  }
89 
95  private static void testEnsureTrailingNewline(@NotNull final String input, @NotNull final String output) {
96  Assert.assertEquals(output, StringUtils.ensureTrailingNewline(input));
97  }
98 
103  @Test
104  public void testDiffTextString() {
105  testDiffTextString("", "abc", null, null);
106 
107  testDiffTextString("abc", "abc", "abc", "abc");
108  testDiffTextString("abc\n" + "def", "abc", "abc", "abc");
109  testDiffTextString("def\n" + "abc\n" + "def", "abc", "abc", "abc");
110  testDiffTextString("def\n" + "abc", "abc", "abc", "abc");
111 
112  testDiffTextString("abc def", "abc", null, "abc def");
113  testDiffTextString("def abc\n" + "abc def", "abc", null, "abc def");
114  testDiffTextString("abc def\n" + "def abc", "abc", null, "abc def");
115  testDiffTextString("def abc\n" + "abc def\n" + "def abc", "abc", null, "abc def");
116  }
117 
128  private static void testDiffTextString(@NotNull final CharSequence base, @NotNull final String str, @Nullable final String expectedFalse, @Nullable final String expectedTrue) {
129  Assert.assertEquals(expectedFalse, StringUtils.diffTextString(base, str, false));
130  Assert.assertEquals(expectedTrue, StringUtils.diffTextString(base, str, true));
131  }
132 
136  @Test
137  public void testRemoveAttribute() {
138  testGetAttribute("", "abc", null);
139  testGetAttribute("abc def", "abc", "def");
140  testGetAttribute("abc def", "ab", null);
141  testGetAttribute("abc def", "def", null);
142  testGetAttribute("abc def\n" + "ghi jkl\n" + "mno pqr\n", "abc", "def");
143  testGetAttribute("abc def\n" + "ghi jkl\n" + "mno pqr\n", "ghi", "jkl");
144  testGetAttribute("abc def\n" + "ghi jkl\n" + "mno pqr\n", "mno", "pqr");
145  testGetAttribute("abc def\n" + "ghi jkl\n" + "mno pqr\n", "xxx", null);
146  }
147 
155  private static void testGetAttribute(@NotNull final CharSequence attributes, @NotNull final String attributeName, @Nullable final String expectedAttributeValue) {
156  final String attributeValue = StringUtils.getAttribute(attributes, attributeName);
157  Assert.assertEquals(expectedAttributeValue, attributeValue);
158  }
159 
160 }
net.sf.gridarta.utils.StringUtilsTest.testRemoveTrailingWhitespace
static void testRemoveTrailingWhitespace(final CharSequence input, final String output)
Checks one invocation of StringUtils#removeTrailingWhitespace(CharSequence).
Definition: StringUtilsTest.java:50
net.sf.gridarta.utils.StringUtilsTest.testEnsureTrailingNewline
void testEnsureTrailingNewline()
Test case for StringUtils#ensureTrailingNewline(String).
Definition: StringUtilsTest.java:82
net.sf.gridarta.utils.StringUtilsTest.testGetAttribute
static void testGetAttribute(@NotNull final CharSequence attributes, @NotNull final String attributeName, @Nullable final String expectedAttributeValue)
Checks that StringUtils#getAttribute(CharSequence, String) does work.
Definition: StringUtilsTest.java:155
net.sf.gridarta.utils.StringUtils.removeTrailingWhitespace
static String removeTrailingWhitespace(@NotNull final CharSequence str)
Removes trailing whitespace from a string.
Definition: StringUtils.java:123
net.sf.gridarta.utils.StringUtils.diffTextString
static CharSequence diffTextString(@NotNull final CharSequence base, @NotNull final String str, final boolean ignoreValues)
Helper function for 'diffArchText()': Looks for occurrence of the attribute 'str' in 'base' and if fo...
Definition: StringUtils.java:162
net.sf.gridarta.utils.StringUtilsTest.testRemoveAttribute
void testRemoveAttribute()
Test case for StringUtils#getAttribute(CharSequence, String).
Definition: StringUtilsTest.java:137
net.sf.gridarta.utils.StringUtilsTest
Test for StringUtils.
Definition: StringUtilsTest.java:32
net.sf.gridarta.utils.StringUtils
Utility class for string manipulation.
Definition: StringUtils.java:31
net.sf.gridarta.utils.StringUtils.getAttribute
static String getAttribute(@NotNull final CharSequence attributes, @NotNull final String attributeName)
Returns an attribute line from a set of attribute definitions.
Definition: StringUtils.java:181
net.sf.gridarta.utils.StringUtilsTest.testDiffTextString
static void testDiffTextString(@NotNull final CharSequence base, @NotNull final String str, @Nullable final String expectedFalse, @Nullable final String expectedTrue)
Checks two invocations of String, boolean).
Definition: StringUtilsTest.java:128
net.sf.gridarta.utils.StringUtilsTest.testEnsureTrailingNewline
static void testEnsureTrailingNewline(@NotNull final String input, @NotNull final String output)
Checks one invocation of StringUtils#ensureTrailingNewline(String).
Definition: StringUtilsTest.java:95
net.sf.gridarta.utils.StringUtilsTest.testRemoveTrailingWhitespaceFromLines
static void testRemoveTrailingWhitespaceFromLines(@NotNull final CharSequence input, @NotNull final String output)
Checks one invocation of StringUtils#removeTrailingWhitespaceFromLines(CharSequence).
Definition: StringUtilsTest.java:74
net.sf.gridarta.utils.StringUtils.ensureTrailingNewline
static CharSequence ensureTrailingNewline(@NotNull final String str)
Returns a given string which ends with a trailing newline character; empty strings remain empty.
Definition: StringUtils.java:146
net.sf.gridarta.utils.StringUtilsTest.testRemoveTrailingWhitespace
void testRemoveTrailingWhitespace()
Test case for StringUtils#removeTrailingWhitespace(CharSequence).
Definition: StringUtilsTest.java:38
net.sf.gridarta.utils.StringUtilsTest.testDiffTextString
void testDiffTextString()
Test case for String, boolean).
Definition: StringUtilsTest.java:104
net.sf.gridarta.utils.StringUtils.removeTrailingWhitespaceFromLines
static String removeTrailingWhitespaceFromLines(@NotNull final CharSequence str)
Removes trailing whitespace from all lines of a string.
Definition: StringUtils.java:133
net.sf.gridarta.utils.StringUtilsTest.testRemoveTrailingWhitespaceFromLines
void testRemoveTrailingWhitespaceFromLines()
Test case for StringUtils#removeTrailingWhitespaceFromLines(CharSequence).
Definition: StringUtilsTest.java:58