blob: d486aab6b7cc5c1038f419c67c9ba2d90b29fded [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2008 Oracle. 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:
* Oracle - initial API and implementation
******************************************************************************/
package org.eclipse.jpt.common.utility.tests.internal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import junit.framework.TestCase;
import org.eclipse.jpt.common.utility.internal.CollectionTools;
import org.eclipse.jpt.common.utility.internal.NameTools;
@SuppressWarnings("nls")
public class NameToolsTests extends TestCase {
public NameToolsTests(String name) {
super(name);
}
public void testStringAbsentIgnoreCase() {
List<String> colorCollection = this.buildColorCollection();
String returned = NameTools.uniqueNameForIgnoreCase("Taupe", colorCollection);
assertEquals("Taupe", returned);
}
public void testStringPresentCaseDiffers() {
List<String> colorCollection = this.buildColorCollection();
String returned = NameTools.uniqueNameFor("green", colorCollection);
assertEquals("green", returned);
}
public void testStringPresentIgnoreCase() {
List<String> colorCollection = this.buildColorCollection();
String returned = NameTools.uniqueNameForIgnoreCase("green", colorCollection);
assertEquals("green2", returned);
}
public void testStringPresentWithAppendices() {
List<String> colorCollection = this.buildColorCollection();
colorCollection.add("Red1");
colorCollection.add("red2");
String returned = NameTools.uniqueNameForIgnoreCase("red", colorCollection);
colorCollection.remove("Red1");
colorCollection.remove("red2");
assertEquals("red3", returned);
}
private List<String> buildColorCollection() {
List<String> colorCollection = new ArrayList<String>();
colorCollection.add("Red");
colorCollection.add("Orange");
colorCollection.add("Yellow");
colorCollection.add("Green");
colorCollection.add("Blue");
colorCollection.add("Indigo");
colorCollection.add("Violet");
return colorCollection;
}
public void testUniqueNameForCollection1() {
Collection<String> strings = new ArrayList<String>();
strings.add("Oracle");
strings.add("Oracle Corporation");
strings.add("Oracle2");
strings.add("oracle1");
strings.add("Oracl");
assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings));
assertEquals("Test", NameTools.uniqueNameFor("Test", strings));
assertEquals("Oracle3", NameTools.uniqueNameForIgnoreCase("Oracle", strings));
assertEquals("oracle3", NameTools.uniqueNameForIgnoreCase("oracle", strings));
assertEquals("Test", NameTools.uniqueNameForIgnoreCase("Test", strings));
}
public void testUniqueNameForCollection2() {
Collection<String> strings = new ArrayList<String>();
strings.add("Oracle");
strings.add("oracle");
strings.add("Oracle2");
strings.add("Oracle1");
assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings));
assertEquals("Test", NameTools.uniqueNameFor("Test", strings));
strings.add("Oracle Corporation");
assertEquals("Oracle3", NameTools.uniqueNameForIgnoreCase("Oracle", strings));
assertEquals("oracle3", NameTools.uniqueNameForIgnoreCase("oracle", strings));
assertEquals("Test", NameTools.uniqueNameForIgnoreCase("Test", strings));
}
public void testUniqueNameForCollection3() {
Collection<String> strings = new ArrayList<String>();
strings.add("Oracle");
strings.add("Oracle");
strings.add("Oracle2");
strings.add("Oracle1");
assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings));
}
public void testUniqueNameForIterator1() {
Collection<String> strings = new ArrayList<String>();
strings.add("Oracle");
strings.add("Oracle Corporation");
strings.add("Oracle2");
strings.add("oracle1");
strings.add("Oracl");
assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings.iterator()));
assertEquals("Test", NameTools.uniqueNameFor("Test", strings.iterator()));
assertEquals("Oracle3", NameTools.uniqueNameForIgnoreCase("Oracle", strings.iterator()));
assertEquals("oracle3", NameTools.uniqueNameForIgnoreCase("oracle", strings.iterator()));
assertEquals("Test", NameTools.uniqueNameForIgnoreCase("Test", strings.iterator()));
}
public void testUniqueNameForIterator2() {
Collection<String> strings = new ArrayList<String>();
strings.add("Oracle");
strings.add("oracle");
strings.add("Oracle2");
strings.add("Oracle1");
assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings.iterator()));
assertEquals("Test", NameTools.uniqueNameFor("Test", strings.iterator()));
strings.add("Oracle Corporation");
assertEquals("Oracle3", NameTools.uniqueNameForIgnoreCase("Oracle", strings.iterator()));
assertEquals("oracle3", NameTools.uniqueNameForIgnoreCase("oracle", strings.iterator()));
assertEquals("Test", NameTools.uniqueNameForIgnoreCase("Test", strings.iterator()));
}
public void testUniqueNameForIterator3() {
Collection<String> strings = new ArrayList<String>();
strings.add("Oracle");
strings.add("Oracle");
strings.add("Oracle2");
strings.add("Oracle1");
assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings.iterator()));
}
public void testBuildQualifiedDatabaseObjectName() {
assertEquals("catalog.schema.name", NameTools.buildQualifiedDatabaseObjectName("catalog", "schema", "name"));
assertEquals("catalog..name", NameTools.buildQualifiedDatabaseObjectName("catalog", null, "name"));
assertEquals("schema.name", NameTools.buildQualifiedDatabaseObjectName(null, "schema", "name"));
assertEquals("name", NameTools.buildQualifiedDatabaseObjectName(null, null, "name"));
}
public void testJavaReservedWords() {
assertTrue(CollectionTools.contains(NameTools.javaReservedWords(), "class"));
assertFalse(CollectionTools.contains(NameTools.javaReservedWords(), "Class"));
assertTrue(CollectionTools.contains(NameTools.javaReservedWords(), "private"));
}
public void testconvertToJavaIdentifierString() {
assertEquals("foo", NameTools.convertToJavaIdentifier("foo"));
assertEquals("foo1", NameTools.convertToJavaIdentifier("foo1"));
assertEquals("private_", NameTools.convertToJavaIdentifier("private"));
assertEquals("throw_", NameTools.convertToJavaIdentifier("throw"));
assertEquals("_foo", NameTools.convertToJavaIdentifier("1foo"));
assertEquals("foo_", NameTools.convertToJavaIdentifier("foo%"));
assertEquals("foo__bar__", NameTools.convertToJavaIdentifier("foo bar "));
}
public void testconvertToJavaIdentifierStringChar() {
assertEquals("foo", NameTools.convertToJavaIdentifier("foo", '$'));
assertEquals("foo1", NameTools.convertToJavaIdentifier("foo1", '$'));
assertEquals("private$", NameTools.convertToJavaIdentifier("private", '$'));
assertEquals("throwss", NameTools.convertToJavaIdentifier("throw", 's'));
assertEquals("$foo", NameTools.convertToJavaIdentifier("1foo", '$'));
assertEquals("foo$", NameTools.convertToJavaIdentifier("foo%", '$'));
assertEquals("foo$$bar$$", NameTools.convertToJavaIdentifier("foo bar ", '$'));
boolean exCaught = false;
try {
String s = NameTools.convertToJavaIdentifier("1foo", '7');
fail("invalid string: \"" + s + "\"");
} catch (IllegalArgumentException ex) {
if (ex.getMessage().indexOf('7') != -1) {
exCaught = true;
}
}
assertTrue(exCaught);
exCaught = false;
try {
String s = NameTools.convertToJavaIdentifier("foo%", '^');
fail("invalid string: \"" + s + "\"");
} catch (IllegalArgumentException ex) {
if (ex.getMessage().indexOf('^') != -1) {
exCaught = true;
}
}
assertTrue(exCaught);
exCaught = false;
try {
String s = NameTools.convertToJavaIdentifier("private", '^');
fail("invalid string: \"" + s + "\"");
} catch (IllegalArgumentException ex) {
if (ex.getMessage().indexOf('^') != -1) {
exCaught = true;
}
}
assertTrue(exCaught);
}
public void testStringIsLegalJavaIdentifier() {
assertFalse(NameTools.stringIsLegalJavaIdentifier("class"));
assertTrue(NameTools.stringIsLegalJavaIdentifier("clasS"));
assertFalse(NameTools.stringIsLegalJavaIdentifier("7foo"));
assertFalse(NameTools.stringIsLegalJavaIdentifier("foo@bar"));
assertTrue(NameTools.stringIsLegalJavaIdentifier("_foo"));
}
}