mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Bug 456099. Added a test for NameComposer.createByExample method.
This commit is contained in:
parent
75900af3ae
commit
bcc3aad840
2 changed files with 64 additions and 41 deletions
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2011 Google, Inc and others.
|
||||
* Copyright (c) 2011, 2015 Google, Inc and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -10,12 +10,12 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.cdt.ui.tests.refactoring.utils;
|
||||
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
|
||||
import org.eclipse.cdt.internal.corext.codemanipulation.StubUtility;
|
||||
|
||||
import static org.eclipse.cdt.internal.corext.codemanipulation.StubUtility.trimFieldName;
|
||||
import static org.eclipse.cdt.internal.ui.util.NameComposer.createByExample;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import org.eclipse.cdt.ui.PreferenceConstants;
|
||||
|
||||
import org.eclipse.cdt.internal.ui.util.NameComposer;
|
||||
|
||||
public class NameComposerTest extends TestCase {
|
||||
|
@ -25,6 +25,16 @@ public class NameComposerTest extends TestCase {
|
|||
private static final int CAPITALIZATION_CAMEL_CASE = PreferenceConstants.NAME_STYLE_CAPITALIZATION_CAMEL_CASE;
|
||||
private static final int CAPITALIZATION_LOWER_CAMEL_CASE = PreferenceConstants.NAME_STYLE_CAPITALIZATION_LOWER_CAMEL_CASE;
|
||||
|
||||
private NameComposer assertCreatedByExample(String seedName, String composedName,
|
||||
int defaultCapitalization, String defaultDelimiter) {
|
||||
NameComposer composer =
|
||||
createByExample(seedName, composedName, defaultCapitalization, defaultDelimiter);
|
||||
assertNotNull("Failed to create a name composer for \"" + seedName + "\", \"" + composedName + "\".",
|
||||
composer);
|
||||
assertEquals(composedName, composer.compose(seedName));
|
||||
return composer;
|
||||
}
|
||||
|
||||
public void testCompose() {
|
||||
NameComposer composer = new NameComposer(CAPITALIZATION_ORIGINAL, "", "", ".h");
|
||||
assertEquals("MyClass.h", composer.compose("MyClass"));
|
||||
|
@ -46,44 +56,51 @@ public class NameComposerTest extends TestCase {
|
|||
composer = new NameComposer(CAPITALIZATION_ORIGINAL, "_", "", "");
|
||||
assertEquals("RGB_Value", composer.compose("RGBValue"));
|
||||
}
|
||||
|
||||
|
||||
public void testCreateByExample() {
|
||||
NameComposer composer = assertCreatedByExample("MyName", "prefix_my-name_suffix", CAPITALIZATION_ORIGINAL, "");
|
||||
assertEquals("prefix_einstein-podolsky-rosen_suffix", composer.compose("EinsteinPodolskyRosen"));
|
||||
assertCreatedByExample("MyName", "PREFIX-MYNAME-SUFFIX", CAPITALIZATION_ORIGINAL, "_");
|
||||
assertNull(createByExample("Class", "Classic", CAPITALIZATION_ORIGINAL, ""));
|
||||
}
|
||||
|
||||
public void testTrimFieldName() {
|
||||
assertEquals("f", StubUtility.trimFieldName("f_"));
|
||||
assertEquals("F", StubUtility.trimFieldName("F_"));
|
||||
assertEquals("oo", StubUtility.trimFieldName("F_oo"));
|
||||
assertEquals("o", StubUtility.trimFieldName("f_o"));
|
||||
assertEquals("f", trimFieldName("f_"));
|
||||
assertEquals("F", trimFieldName("F_"));
|
||||
assertEquals("oo", trimFieldName("F_oo"));
|
||||
assertEquals("o", trimFieldName("f_o"));
|
||||
|
||||
assertEquals("M", StubUtility.trimFieldName("a_M_"));
|
||||
assertEquals("bs", StubUtility.trimFieldName("a_bs_"));
|
||||
assertEquals("foo_bar", StubUtility.trimFieldName("foo_bar"));
|
||||
assertEquals("foo_bar", StubUtility.trimFieldName("foo_bar_"));
|
||||
assertEquals("M", trimFieldName("a_M_"));
|
||||
assertEquals("bs", trimFieldName("a_bs_"));
|
||||
assertEquals("foo_bar", trimFieldName("foo_bar"));
|
||||
assertEquals("foo_bar", trimFieldName("foo_bar_"));
|
||||
|
||||
assertEquals("foo_b", StubUtility.trimFieldName("foo_b_"));
|
||||
assertEquals("foo_b", trimFieldName("foo_b_"));
|
||||
|
||||
assertEquals("foo", StubUtility.trimFieldName("foo"));
|
||||
assertEquals("foo", StubUtility.trimFieldName("_foo"));
|
||||
assertEquals("bar", StubUtility.trimFieldName("_f_bar"));
|
||||
assertEquals("foo", trimFieldName("foo"));
|
||||
assertEquals("foo", trimFieldName("_foo"));
|
||||
assertEquals("bar", trimFieldName("_f_bar"));
|
||||
|
||||
assertEquals("f", StubUtility.trimFieldName("f__"));
|
||||
assertEquals("f", StubUtility.trimFieldName("__f"));
|
||||
assertEquals("O__b", StubUtility.trimFieldName("fO__b"));
|
||||
assertEquals("Oo", StubUtility.trimFieldName("fOo"));
|
||||
assertEquals("O", StubUtility.trimFieldName("fO"));
|
||||
assertEquals("MyStatic", StubUtility.trimFieldName("sMyStatic"));
|
||||
assertEquals("MyMember", StubUtility.trimFieldName("mMyMember"));
|
||||
assertEquals("f", trimFieldName("f__"));
|
||||
assertEquals("f", trimFieldName("__f"));
|
||||
assertEquals("O__b", trimFieldName("fO__b"));
|
||||
assertEquals("Oo", trimFieldName("fOo"));
|
||||
assertEquals("O", trimFieldName("fO"));
|
||||
assertEquals("MyStatic", trimFieldName("sMyStatic"));
|
||||
assertEquals("MyMember", trimFieldName("mMyMember"));
|
||||
|
||||
assertEquals("8", StubUtility.trimFieldName("_8"));
|
||||
assertEquals("8", trimFieldName("_8"));
|
||||
|
||||
assertEquals("8bar", StubUtility.trimFieldName("_8bar_"));
|
||||
assertEquals("8bar_8", StubUtility.trimFieldName("_8bar_8"));
|
||||
assertEquals("8bAr", StubUtility.trimFieldName("_8bAr"));
|
||||
assertEquals("b8Ar", StubUtility.trimFieldName("_b8Ar"));
|
||||
assertEquals("8bar", trimFieldName("_8bar_"));
|
||||
assertEquals("8bar_8", trimFieldName("_8bar_8"));
|
||||
assertEquals("8bAr", trimFieldName("_8bAr"));
|
||||
assertEquals("b8Ar", trimFieldName("_b8Ar"));
|
||||
|
||||
assertEquals("Id", StubUtility.trimFieldName("Id"));
|
||||
assertEquals("ID", StubUtility.trimFieldName("ID"));
|
||||
assertEquals("IDS", StubUtility.trimFieldName("IDS"));
|
||||
assertEquals("ID", StubUtility.trimFieldName("bID"));
|
||||
assertEquals("Id", StubUtility.trimFieldName("MId"));
|
||||
assertEquals("IdA", StubUtility.trimFieldName("IdA"));
|
||||
assertEquals("Id", trimFieldName("Id"));
|
||||
assertEquals("ID", trimFieldName("ID"));
|
||||
assertEquals("IDS", trimFieldName("IDS"));
|
||||
assertEquals("ID", trimFieldName("bID"));
|
||||
assertEquals("Id", trimFieldName("MId"));
|
||||
assertEquals("IdA", trimFieldName("IdA"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
package org.eclipse.cdt.internal.ui.util;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import com.ibm.icu.text.BreakIterator;
|
||||
|
@ -173,14 +174,19 @@ public class NameComposer {
|
|||
if (seedWords.isEmpty())
|
||||
return null;
|
||||
List<CharSequence> composedWords = splitIntoWords(composedName);
|
||||
int numPrefixWords = indexOfSublistIgnoreCase(composedWords, seedWords);
|
||||
if (numPrefixWords < 0)
|
||||
return null;
|
||||
String prefix = deducePrefix(composedName, numPrefixWords);
|
||||
String delimiter = defaultWordDelimiter;
|
||||
int numPrefixWords = indexOfSublistIgnoreCase(composedWords, seedWords);
|
||||
if (numPrefixWords < 0) {
|
||||
delimiter = ""; //$NON-NLS-1$
|
||||
seedWords = Collections.<CharSequence>singletonList(seedName);
|
||||
numPrefixWords = indexOfSublistIgnoreCase(composedWords, seedWords);
|
||||
if (numPrefixWords < 0)
|
||||
return null;
|
||||
}
|
||||
String prefix = deducePrefix(composedName, numPrefixWords);
|
||||
if (seedWords.size() > 1) {
|
||||
delimiter = ""; //$NON-NLS-1$
|
||||
int start = prefix.length() + composedWords.get(0).length();
|
||||
int start = prefix.length() + composedWords.get(numPrefixWords).length();
|
||||
for (int i = start; i < composedName.length(); i++) {
|
||||
if (Character.isLetterOrDigit(composedName.charAt(i))) {
|
||||
delimiter = composedName.substring(start, i);
|
||||
|
|
Loading…
Add table
Reference in a new issue