Created
November 8, 2015 22:16
-
-
Save BorzdeG/3b0f99d7a6a1ac259ba4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package demo; | |
import org.apache.commons.lang3.text.WordUtils; | |
import org.testng.Assert; | |
import org.testng.annotations.DataProvider; | |
import org.testng.annotations.Test; | |
public class CamelCaseTests { | |
@DataProvider(name = "data") | |
public static Object[][] data() { | |
return new Object[][]{ | |
{"normalCamelCaseName", "normalCamelCaseName", true} | |
, {"normalCamelCaseName", "NormalCamelCaseName", false} | |
, {"NotCamelCaseName", "notCamelCaseName", true} | |
, {"NotCamelCaseName", "NotCamelCaseName", false} | |
, {"CONSTANT_TO_CAMEL_CASE", "constantToCamelCase", true} | |
, {"CONSTANT_TO_CAMEL_CASE", "ConstantToCamelCase", false} | |
, {"Text To Camel Case", "textToCamelCase", true} | |
, {"Text To Camel Case", "TextToCamelCase", false} | |
, {"Text to camel case", "textToCamelCase", true} | |
, {"Text to camel case", "TextToCamelCase", false} | |
, {"ОтЖиМаЕмСя На ШиФфТе, ДрУзЯфФкИ!:)", "отЖиМаЕмСяНаШиФфТеДрУзЯфФкИ", true} | |
, {"ОтЖиМаЕмСя На ШиФфТе, ДрУзЯфФкИ!:)", "ОтЖиМаЕмСяНаШиФфТеДрУзЯфФкИ", false} | |
, {"-(*&*&%&%$^&^*()Знаков*&^%*(&$препинания… и.нечитаемых-----------знаков^ (Может*90Быть&(*?*?: СКОЛЬКО*?%?:%угодно!", "знаковПрепинанияИНечитаемыхЗнаковМожет90БытьСколькоУгодно", true} | |
, {"-(*&*&%&%$^&^*()Знаков*&^%*(&$препинания… и.нечитаемых-----------знаков^ (Может*90Быть&(*?*?: СКОЛЬКО*?%?:%угодно!", "ЗнаковПрепинанияИНечитаемыхЗнаковМожет90БытьСколькоУгодно", false} | |
, {"И, напоследок, русская строка со знаками препинания (локализация!).", "иНапоследокРусскаяСтрокаСоЗнакамиПрепинанияЛокализация", true} | |
, {"И, напоследок, русская строка со знаками препинания (локализация!).", "ИНапоследокРусскаяСтрокаСоЗнакамиПрепинанияЛокализация", false} | |
}; | |
} | |
@Test(dataProvider = "data") | |
public void testString(final String s, final String expect, final boolean firstWordToLowerCase) throws Exception { | |
String s1 = s.replaceAll("[^A-Za-zа-яА-Я0-9]", "_"); | |
s1 = s1.replaceAll("([a-zа-я])([A-ZА-Я])", "$1_$2"); | |
s1 = s1.replaceAll("(\\d)", "$1_"); | |
String actual = WordUtils.capitalizeFully(s1, '_').replaceAll("_",""); | |
if (firstWordToLowerCase) { | |
actual = actual.substring(0, 1).toLowerCase() + actual.substring(1); | |
} | |
Assert.assertEquals(actual, expect); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment