/*******************************************************************************
* Copyright (c) 1998, 2015 Oracle and/or its affiliates. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Oracle - initial API and implementation from Oracle TopLink
******************************************************************************/
package org.eclipse.persistence.tools.workbench.test.utility;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.eclipse.persistence.tools.workbench.utility.CollectionTools;
import org.eclipse.persistence.tools.workbench.utility.NameTools;
public class NameToolsTests extends TestCase {
public static Test suite() {
return new TestSuite(NameToolsTests.class);
}
public NameToolsTests(String name) {
super(name);
}
public void testStringAbsentIgnoreCase() {
List colorCollection = this.buildColorCollection();
String returned = NameTools.uniqueNameForIgnoreCase("Taupe", colorCollection);
assertEquals("Taupe", returned);
}
public void testStringPresentCaseDiffers() {
List colorCollection = this.buildColorCollection();
String returned = NameTools.uniqueNameFor("green", colorCollection);
assertEquals("green", returned);
}
public void testStringPresentIgnoreCase() {
List colorCollection = this.buildColorCollection();
String returned = NameTools.uniqueNameForIgnoreCase("green", colorCollection);
assertEquals("green2", returned);
}
public void testStringPresentWithAppendices() {
List 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 buildColorCollection() {
List colorCollection = new ArrayList();
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 strings = new ArrayList();
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 strings = new ArrayList();
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 strings = new ArrayList();
strings.add("Oracle");
strings.add("Oracle");
strings.add("Oracle2");
strings.add("Oracle1");
assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings));
}
public void testUniqueNameForIterator1() {
Collection strings = new ArrayList();
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 strings = new ArrayList();
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 strings = new ArrayList();
strings.add("Oracle");
strings.add("Oracle");
strings.add("Oracle2");
strings.add("Oracle1");
assertEquals("Oracle3", NameTools.uniqueNameFor("Oracle", strings.iterator()));
}
public void testUniqueJavaNameForCollection() {
Collection strings = new ArrayList();
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("schema.name", NameTools.buildQualifiedDatabaseObjectName("schema", null, "name"));
assertEquals("catalog.name", NameTools.buildQualifiedDatabaseObjectName(null, "catalog", "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"));
}
}