diff options
Diffstat (limited to 'jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/NameToolsTests.java')
-rw-r--r-- | jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/NameToolsTests.java | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/NameToolsTests.java b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/NameToolsTests.java new file mode 100644 index 0000000000..164fa49e03 --- /dev/null +++ b/jpa/tests/org.eclipse.jpt.utility.tests/src/org/eclipse/jpt/utility/tests/internal/NameToolsTests.java @@ -0,0 +1,214 @@ +/******************************************************************************* + * Copyright (c) 2005, 2007 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.utility.tests.internal; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import junit.framework.TestCase; +import org.eclipse.jpt.utility.internal.CollectionTools; +import org.eclipse.jpt.utility.internal.NameTools; + +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 testUniqueJavaNameForCollection() { + Collection<String> strings = new ArrayList<String>(); + strings.add("Oracle"); + strings.add("Oracle"); + strings.add("Oracle2"); + strings.add("Oracle1"); + + assertEquals("private2", NameTools.uniqueJavaNameFor("private", strings.iterator())); + assertEquals("class2", NameTools.uniqueJavaNameFor("class", 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("_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("$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); + + } + +} |