TextManipulator.java
package org.jbehave.core.junit;
import java.util.HashSet;
import java.util.Set;
@SuppressWarnings("checkstyle:AvoidEscapedUnicodeCharacters")
public class TextManipulator {
private static final char ONE_DOT_LEADER = '\u2024';
private final Set<String> uniqueSet = new HashSet<>();
public String uniquify(String value) {
String unique = escape(value);
while (uniqueSet.contains(unique)) {
unique += '\u200B'; // zero-width-space
}
uniqueSet.add(unique);
return unique;
}
public static String escape(String value) {
return value.replace('.', ONE_DOT_LEADER)
.replaceAll("[\r\n]+", ", ")
.replaceAll("[()]", "|");
}
}