/*******************************************************************************
* Copyright (c) 2011 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
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Sergey Prigogin (Google) - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.ui.tests.refactoring.utils;
import org.eclipse.cdt.ui.PreferenceConstants;
import junit.framework.TestCase;
import org.eclipse.cdt.internal.ui.util.NameComposer;
public class NameComposerTest extends TestCase {
private static final int CAPITALIZATION_ORIGINAL = PreferenceConstants.NAME_STYLE_CAPITALIZATION_ORIGINAL;
private static final int CAPITALIZATION_UPPER_CASE = PreferenceConstants.NAME_STYLE_CAPITALIZATION_UPPER_CASE;
private static final int CAPITALIZATION_LOWER_CASE = PreferenceConstants.NAME_STYLE_CAPITALIZATION_LOWER_CASE;
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;
public void testCompose() {
NameComposer composer = new NameComposer(CAPITALIZATION_ORIGINAL, "", "", ".h");
assertEquals("MyClass.h", composer.compose("MyClass"));
composer = new NameComposer(CAPITALIZATION_LOWER_CASE, "-", "", ".cc");
assertEquals("my-class.cc", composer.compose("MyClass"));
composer = new NameComposer(CAPITALIZATION_UPPER_CASE, "_", "", "");
assertEquals("MY_CONSTANT", composer.compose("MyConstant"));
composer = new NameComposer(CAPITALIZATION_CAMEL_CASE, "", "get", "");
assertEquals("getMyField", composer.compose("myField"));
assertEquals("getMyField", composer.compose("my_field_"));
composer = new NameComposer(CAPITALIZATION_LOWER_CAMEL_CASE, "", "", "");
assertEquals("myField", composer.compose("MyField"));
composer = new NameComposer(CAPITALIZATION_LOWER_CASE, "_", "", "_");
assertEquals("my_field_", composer.compose("MyField"));
composer = new NameComposer(CAPITALIZATION_ORIGINAL, "_", "", "");
assertEquals("red_Green_blue", composer.compose("_red_Green_blue"));
composer = new NameComposer(CAPITALIZATION_CAMEL_CASE, "", "", "");
assertEquals("RgbValue", composer.compose("RGBValue"));
composer = new NameComposer(CAPITALIZATION_ORIGINAL, "_", "", "");
assertEquals("RGB_Value", composer.compose("RGBValue"));
}
public void testTrimFieldName() {
assertEquals("f", NameComposer.trimFieldName("f_"));
assertEquals("F", NameComposer.trimFieldName("F_"));
assertEquals("oo", NameComposer.trimFieldName("F_oo"));
assertEquals("o", NameComposer.trimFieldName("f_o"));
assertEquals("M", NameComposer.trimFieldName("a_M_"));
assertEquals("bs", NameComposer.trimFieldName("a_bs_"));
assertEquals("foo_bar", NameComposer.trimFieldName("foo_bar"));
assertEquals("foo_bar", NameComposer.trimFieldName("foo_bar_"));
assertEquals("foo_b", NameComposer.trimFieldName("foo_b_"));
assertEquals("foo", NameComposer.trimFieldName("foo"));
assertEquals("foo", NameComposer.trimFieldName("_foo"));
assertEquals("bar", NameComposer.trimFieldName("_f_bar"));
assertEquals("f", NameComposer.trimFieldName("f__"));
assertEquals("f", NameComposer.trimFieldName("__f"));
assertEquals("O__b", NameComposer.trimFieldName("fO__b"));
assertEquals("Oo", NameComposer.trimFieldName("fOo"));
assertEquals("O", NameComposer.trimFieldName("fO"));
assertEquals("MyStatic", NameComposer.trimFieldName("sMyStatic"));
assertEquals("MyMember", NameComposer.trimFieldName("mMyMember"));
assertEquals("8", NameComposer.trimFieldName("_8"));
assertEquals("8bar", NameComposer.trimFieldName("_8bar_"));
assertEquals("8bar_8", NameComposer.trimFieldName("_8bar_8"));
assertEquals("8bAr", NameComposer.trimFieldName("_8bAr"));
assertEquals("b8Ar", NameComposer.trimFieldName("_b8Ar"));
assertEquals("Id", NameComposer.trimFieldName("Id"));
assertEquals("ID", NameComposer.trimFieldName("ID"));
assertEquals("IDS", NameComposer.trimFieldName("IDS"));
assertEquals("ID", NameComposer.trimFieldName("bID"));
assertEquals("Id", NameComposer.trimFieldName("MId"));
assertEquals("IdA", NameComposer.trimFieldName("IdA"));
}
}