/*
* Copyright (c) 2007 BUSINESS OBJECTS SOFTWARE LIMITED
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of Business Objects nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
package org.openquark.cal.services;
import junit.framework.TestCase;
/**
* A set of JUnit test cases that tests the behaviour of the IndentifierUtils class,
* in particular its ability to make corrections and suggest proper identifiers.
*
* @author Joseph Wong
*/
public class IdentifierUtils_Test extends TestCase {
/**
* Constructor for LanguageInfo_Test.
*
* @param name
* the name of the test
*/
public IdentifierUtils_Test(String name) {
super(name);
}
/**
* Tests the method IdentifierUtils.makeValidModuleNameComponent() to make sure that it performs
* the proper corrections on the argument string and returns a valid module name.
*/
public void testMakeValidModuleName() {
assertTrue(IdentifierUtils.makeValidModuleNameComponent("Int").isValid());
assertTrue(IdentifierUtils.makeValidModuleNameComponent("CamelCase").isValid());
assertTrue(IdentifierUtils.makeValidModuleNameComponent("UPPERCASE").isValid());
assertTrue(IdentifierUtils.makeValidModuleNameComponent("M2").isValid());
assertTrue(IdentifierUtils.makeValidModuleNameComponent("M_").isValid());
assertEquals("Int", IdentifierUtils.makeValidModuleNameComponent("int").getSuggestion());
assertEquals("IntPair", IdentifierUtils.makeValidModuleNameComponent("intPair").getSuggestion());
assertEquals("M2", IdentifierUtils.makeValidModuleNameComponent("_M2").getSuggestion());
assertEquals("M_2", IdentifierUtils.makeValidModuleNameComponent("M 2").getSuggestion());
assertEquals("M_2_", IdentifierUtils.makeValidModuleNameComponent(" M 2 ").getSuggestion());
assertEquals("CamelCase", IdentifierUtils.makeValidModuleNameComponent("camel,case").getSuggestion());
assertNull(IdentifierUtils.makeValidModuleNameComponent("").getSuggestion());
assertNull(IdentifierUtils.makeValidModuleNameComponent("").getSuggestion());
assertNull(IdentifierUtils.makeValidModuleNameComponent("_").getSuggestion());
assertNull(IdentifierUtils.makeValidModuleNameComponent("6").getSuggestion());
assertNull(IdentifierUtils.makeValidModuleNameComponent("\n").getSuggestion());
assertNull(IdentifierUtils.makeValidModuleNameComponent(" ").getSuggestion());
assertNull(IdentifierUtils.makeValidModuleNameComponent("").getSuggestion());
assertNull(IdentifierUtils.makeValidModuleNameComponent("\u3721").getSuggestion());
assertNull(IdentifierUtils.makeValidModuleNameComponent("~").getSuggestion());
assertNull(IdentifierUtils.makeValidModuleNameComponent("+").getSuggestion());
assertNull(IdentifierUtils.makeValidModuleNameComponent("@").getSuggestion());
assertNull(IdentifierUtils.makeValidModuleNameComponent("//").getSuggestion());
assertNull(IdentifierUtils.makeValidModuleNameComponent(".").getSuggestion());
}
/**
* Tests the method IdentifierUtils.makeValidFunctionName() to make sure that it performs
* the proper corrections on the argument string and returns a valid function name.
*/
public void testMakeValidFunctionName() {
assertTrue(IdentifierUtils.makeValidFunctionName("foo").isValid());
assertTrue(IdentifierUtils.makeValidFunctionName("bar").isValid());
assertTrue(IdentifierUtils.makeValidFunctionName("bar2").isValid());
assertTrue(IdentifierUtils.makeValidFunctionName("bar_").isValid());
assertEquals("int", IdentifierUtils.makeValidFunctionName("Int").getSuggestion());
assertEquals("intPair", IdentifierUtils.makeValidFunctionName("IntPair").getSuggestion());
assertEquals("m2", IdentifierUtils.makeValidFunctionName("_m2").getSuggestion());
assertEquals("m_2", IdentifierUtils.makeValidFunctionName("m 2").getSuggestion());
assertEquals("m_2_", IdentifierUtils.makeValidFunctionName(" m 2 ").getSuggestion());
assertEquals("camelCase", IdentifierUtils.makeValidFunctionName("Camel,case").getSuggestion());
assertEquals("let0", IdentifierUtils.makeValidFunctionName("let").getSuggestion());
assertEquals("class0", IdentifierUtils.makeValidFunctionName("class").getSuggestion());
assertEquals("if0", IdentifierUtils.makeValidFunctionName("if").getSuggestion());
assertNull(IdentifierUtils.makeValidFunctionName("").getSuggestion());
assertNull(IdentifierUtils.makeValidFunctionName("").getSuggestion());
assertNull(IdentifierUtils.makeValidFunctionName("_").getSuggestion());
assertNull(IdentifierUtils.makeValidFunctionName("6").getSuggestion());
assertNull(IdentifierUtils.makeValidFunctionName("\n").getSuggestion());
assertNull(IdentifierUtils.makeValidFunctionName(" ").getSuggestion());
assertNull(IdentifierUtils.makeValidFunctionName("").getSuggestion());
assertNull(IdentifierUtils.makeValidFunctionName("\u3721").getSuggestion());
assertNull(IdentifierUtils.makeValidFunctionName("~").getSuggestion());
assertNull(IdentifierUtils.makeValidFunctionName("+").getSuggestion());
assertNull(IdentifierUtils.makeValidFunctionName("@").getSuggestion());
assertNull(IdentifierUtils.makeValidFunctionName("//").getSuggestion());
assertNull(IdentifierUtils.makeValidFunctionName(".").getSuggestion());
}
/**
* Tests the method IdentifierUtils.makeValidTypeConstructorName() to make sure
* that it performs the proper corrections on the argument string and returns
* a valid type constructor name.
*/
public void testMakeValidTypeConstructorName() {
assertTrue(IdentifierUtils.makeValidTypeConstructorName("Int").isValid());
assertTrue(IdentifierUtils.makeValidTypeConstructorName("CamelCase").isValid());
assertTrue(IdentifierUtils.makeValidTypeConstructorName("UPPERCASE").isValid());
assertTrue(IdentifierUtils.makeValidTypeConstructorName("M2").isValid());
assertTrue(IdentifierUtils.makeValidTypeConstructorName("M_").isValid());
assertEquals("Int", IdentifierUtils.makeValidTypeConstructorName("int").getSuggestion());
assertEquals("IntPair", IdentifierUtils.makeValidTypeConstructorName("intPair").getSuggestion());
assertEquals("M2", IdentifierUtils.makeValidTypeConstructorName("_M2").getSuggestion());
assertEquals("M_2", IdentifierUtils.makeValidTypeConstructorName("M 2").getSuggestion());
assertEquals("M_2_", IdentifierUtils.makeValidTypeConstructorName(" M 2 ").getSuggestion());
assertEquals("CamelCase", IdentifierUtils.makeValidTypeConstructorName("camel,case").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeConstructorName("").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeConstructorName("").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeConstructorName("_").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeConstructorName("6").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeConstructorName("\n").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeConstructorName(" ").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeConstructorName("").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeConstructorName("\u3721").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeConstructorName("~").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeConstructorName("+").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeConstructorName("@").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeConstructorName("//").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeConstructorName(".").getSuggestion());
}
/**
* Tests the method IdentifierUtils.makeValidTypeVariableName() to make sure
* that it performs the proper corrections on the argument string and returns
* a valid type variable name.
*/
public void testMakeValidTypeVariableName() {
assertTrue(IdentifierUtils.makeValidTypeVariableName("foo").isValid());
assertTrue(IdentifierUtils.makeValidTypeVariableName("bar").isValid());
assertTrue(IdentifierUtils.makeValidTypeVariableName("bar2").isValid());
assertTrue(IdentifierUtils.makeValidTypeVariableName("bar_").isValid());
assertEquals("int", IdentifierUtils.makeValidTypeVariableName("Int").getSuggestion());
assertEquals("intPair", IdentifierUtils.makeValidTypeVariableName("IntPair").getSuggestion());
assertEquals("m2", IdentifierUtils.makeValidTypeVariableName("_m2").getSuggestion());
assertEquals("m_2", IdentifierUtils.makeValidTypeVariableName("m 2").getSuggestion());
assertEquals("m_2_", IdentifierUtils.makeValidTypeVariableName(" m 2 ").getSuggestion());
assertEquals("camelCase", IdentifierUtils.makeValidTypeVariableName("Camel,case").getSuggestion());
assertEquals("let0", IdentifierUtils.makeValidTypeVariableName("let").getSuggestion());
assertEquals("class0", IdentifierUtils.makeValidTypeVariableName("class").getSuggestion());
assertEquals("if0", IdentifierUtils.makeValidTypeVariableName("if").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeVariableName("").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeVariableName("").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeVariableName("_").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeVariableName("6").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeVariableName("\n").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeVariableName(" ").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeVariableName("").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeVariableName("\u3721").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeVariableName("~").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeVariableName("+").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeVariableName("@").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeVariableName("//").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeVariableName(".").getSuggestion());
}
/**
* Tests the method IdentifierUtils.makeValidDataConstructorName() to make sure
* that it performs the proper corrections on the argument string and returns
* a valid data constructor name.
*/
public void testMakeValidDataConstructorName() {
assertTrue(IdentifierUtils.makeValidDataConstructorName("Int").isValid());
assertTrue(IdentifierUtils.makeValidDataConstructorName("CamelCase").isValid());
assertTrue(IdentifierUtils.makeValidDataConstructorName("UPPERCASE").isValid());
assertTrue(IdentifierUtils.makeValidDataConstructorName("M2").isValid());
assertTrue(IdentifierUtils.makeValidDataConstructorName("M_").isValid());
assertEquals("Int", IdentifierUtils.makeValidDataConstructorName("int").getSuggestion());
assertEquals("IntPair", IdentifierUtils.makeValidDataConstructorName("intPair").getSuggestion());
assertEquals("M2", IdentifierUtils.makeValidDataConstructorName("_M2").getSuggestion());
assertEquals("M_2", IdentifierUtils.makeValidDataConstructorName("M 2").getSuggestion());
assertEquals("M_2_", IdentifierUtils.makeValidDataConstructorName(" M 2 ").getSuggestion());
assertEquals("CamelCase", IdentifierUtils.makeValidDataConstructorName("camel,case").getSuggestion());
assertNull(IdentifierUtils.makeValidDataConstructorName("").getSuggestion());
assertNull(IdentifierUtils.makeValidDataConstructorName("").getSuggestion());
assertNull(IdentifierUtils.makeValidDataConstructorName("_").getSuggestion());
assertNull(IdentifierUtils.makeValidDataConstructorName("6").getSuggestion());
assertNull(IdentifierUtils.makeValidDataConstructorName("\n").getSuggestion());
assertNull(IdentifierUtils.makeValidDataConstructorName(" ").getSuggestion());
assertNull(IdentifierUtils.makeValidDataConstructorName("").getSuggestion());
assertNull(IdentifierUtils.makeValidDataConstructorName("\u3721").getSuggestion());
assertNull(IdentifierUtils.makeValidDataConstructorName("~").getSuggestion());
assertNull(IdentifierUtils.makeValidDataConstructorName("+").getSuggestion());
assertNull(IdentifierUtils.makeValidDataConstructorName("@").getSuggestion());
assertNull(IdentifierUtils.makeValidDataConstructorName("//").getSuggestion());
assertNull(IdentifierUtils.makeValidDataConstructorName(".").getSuggestion());
}
/**
* Tests the method IdentifierUtils.makeValidTypeClassName() to make sure
* that it performs the proper corrections on the argument string and returns
* a valid type class name.
*/
public void testMakeValidTypeClassName() {
assertTrue(IdentifierUtils.makeValidTypeClassName("Int").isValid());
assertTrue(IdentifierUtils.makeValidTypeClassName("CamelCase").isValid());
assertTrue(IdentifierUtils.makeValidTypeClassName("UPPERCASE").isValid());
assertTrue(IdentifierUtils.makeValidTypeClassName("M2").isValid());
assertTrue(IdentifierUtils.makeValidTypeClassName("M_").isValid());
assertEquals("Int", IdentifierUtils.makeValidTypeClassName("int").getSuggestion());
assertEquals("IntPair", IdentifierUtils.makeValidTypeClassName("intPair").getSuggestion());
assertEquals("M2", IdentifierUtils.makeValidTypeClassName("_M2").getSuggestion());
assertEquals("M_2", IdentifierUtils.makeValidTypeClassName("M 2").getSuggestion());
assertEquals("M_2_", IdentifierUtils.makeValidTypeClassName(" M 2 ").getSuggestion());
assertEquals("CamelCase", IdentifierUtils.makeValidTypeClassName("camel,case").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeClassName("").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeClassName("").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeClassName("_").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeClassName("6").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeClassName("\n").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeClassName(" ").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeClassName("").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeClassName("\u3721").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeClassName("~").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeClassName("+").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeClassName("@").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeClassName("//").getSuggestion());
assertNull(IdentifierUtils.makeValidTypeClassName(".").getSuggestion());
}
/**
* Tests the method IdentifierUtils.makeValidClassMethodName() to make sure
* that it performs the proper corrections on the argument string and returns
* a valid class method name.
*/
public void testMakeValidClassMethodName() {
assertTrue(IdentifierUtils.makeValidClassMethodName("foo").isValid());
assertTrue(IdentifierUtils.makeValidClassMethodName("bar").isValid());
assertTrue(IdentifierUtils.makeValidClassMethodName("bar2").isValid());
assertTrue(IdentifierUtils.makeValidClassMethodName("bar_").isValid());
assertEquals("int", IdentifierUtils.makeValidClassMethodName("Int").getSuggestion());
assertEquals("intPair", IdentifierUtils.makeValidClassMethodName("IntPair").getSuggestion());
assertEquals("m2", IdentifierUtils.makeValidClassMethodName("_m2").getSuggestion());
assertEquals("m_2", IdentifierUtils.makeValidClassMethodName("m 2").getSuggestion());
assertEquals("m_2_", IdentifierUtils.makeValidClassMethodName(" m 2 ").getSuggestion());
assertEquals("camelCase", IdentifierUtils.makeValidClassMethodName("Camel,case").getSuggestion());
assertEquals("let0", IdentifierUtils.makeValidClassMethodName("let").getSuggestion());
assertEquals("class0", IdentifierUtils.makeValidClassMethodName("class").getSuggestion());
assertEquals("if0", IdentifierUtils.makeValidClassMethodName("if").getSuggestion());
assertNull(IdentifierUtils.makeValidClassMethodName("").getSuggestion());
assertNull(IdentifierUtils.makeValidClassMethodName("").getSuggestion());
assertNull(IdentifierUtils.makeValidClassMethodName("_").getSuggestion());
assertNull(IdentifierUtils.makeValidClassMethodName("6").getSuggestion());
assertNull(IdentifierUtils.makeValidClassMethodName("\n").getSuggestion());
assertNull(IdentifierUtils.makeValidClassMethodName(" ").getSuggestion());
assertNull(IdentifierUtils.makeValidClassMethodName("").getSuggestion());
assertNull(IdentifierUtils.makeValidClassMethodName("\u3721").getSuggestion());
assertNull(IdentifierUtils.makeValidClassMethodName("~").getSuggestion());
assertNull(IdentifierUtils.makeValidClassMethodName("+").getSuggestion());
assertNull(IdentifierUtils.makeValidClassMethodName("@").getSuggestion());
assertNull(IdentifierUtils.makeValidClassMethodName("//").getSuggestion());
assertNull(IdentifierUtils.makeValidClassMethodName(".").getSuggestion());
}
/*
* Class under test for String makeIdentifierName(String)
*/
/**
* Tests the method LanguageInfo.makeIdentifierName(String) to make sure
* that it performs the proper corrections on the argument string and returns
* a valid identifier name.
*/
public void testMakeIdentifierName_String() {
assertEquals("foo", IdentifierUtils.makeIdentifierName("foo"));
assertEquals("bar", IdentifierUtils.makeIdentifierName("bar"));
assertEquals("bar2", IdentifierUtils.makeIdentifierName("bar2"));
assertEquals("bar_", IdentifierUtils.makeIdentifierName("bar_"));
assertEquals("int", IdentifierUtils.makeIdentifierName("Int"));
assertEquals("intPair", IdentifierUtils.makeIdentifierName("IntPair"));
assertEquals("m2", IdentifierUtils.makeIdentifierName("_m2"));
assertEquals("m_2", IdentifierUtils.makeIdentifierName("m 2"));
assertEquals("m_2_", IdentifierUtils.makeIdentifierName(" m 2 "));
assertEquals("camelCase", IdentifierUtils.makeIdentifierName("Camel,case"));
assertEquals("let0", IdentifierUtils.makeIdentifierName("let"));
assertEquals("class0", IdentifierUtils.makeIdentifierName("class"));
assertEquals("if0", IdentifierUtils.makeIdentifierName("if"));
assertNull(IdentifierUtils.makeIdentifierName(""));
assertNull(IdentifierUtils.makeIdentifierName(""));
assertNull(IdentifierUtils.makeIdentifierName("_"));
assertNull(IdentifierUtils.makeIdentifierName("6"));
assertNull(IdentifierUtils.makeIdentifierName("\n"));
assertNull(IdentifierUtils.makeIdentifierName(" "));
assertNull(IdentifierUtils.makeIdentifierName(""));
assertNull(IdentifierUtils.makeIdentifierName("\u3721"));
assertNull(IdentifierUtils.makeIdentifierName("~"));
assertNull(IdentifierUtils.makeIdentifierName("+"));
assertNull(IdentifierUtils.makeIdentifierName("@"));
assertNull(IdentifierUtils.makeIdentifierName("//"));
assertNull(IdentifierUtils.makeIdentifierName("."));
}
/*
* Class under test for ValidatedIdentifier makeIdentifierName(String, boolean)
*/
/**
* Tests the method IdentifierUtils.makeIdentifierName(String, boolean) to make sure
* that it performs the proper corrections on the argument string and returns
* a valid identifier name with the first character in uppercase.
*/
public void testMakeIdentifierName_StringBoolean_isConstructor() {
assertTrue(IdentifierUtils.makeValidatedIdentifier("Int", true).isValid());
assertTrue(IdentifierUtils.makeValidatedIdentifier("CamelCase", true).isValid());
assertTrue(IdentifierUtils.makeValidatedIdentifier("UPPERCASE", true).isValid());
assertTrue(IdentifierUtils.makeValidatedIdentifier("M2", true).isValid());
assertTrue(IdentifierUtils.makeValidatedIdentifier("M_", true).isValid());
assertEquals("Int", IdentifierUtils.makeValidatedIdentifier("int", true).getSuggestion());
assertEquals("IntPair", IdentifierUtils.makeValidatedIdentifier("intPair", true).getSuggestion());
assertEquals("M2", IdentifierUtils.makeValidatedIdentifier("_M2", true).getSuggestion());
assertEquals("M_2", IdentifierUtils.makeValidatedIdentifier("M 2", true).getSuggestion());
assertEquals("M_2_", IdentifierUtils.makeValidatedIdentifier(" M 2 ", true).getSuggestion());
assertEquals("CamelCase", IdentifierUtils.makeValidatedIdentifier("camel,case", true).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("", true).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("", true).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("_", true).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("6", true).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("\n", true).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier(" ", true).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("", true).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("\u3721", true).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("~", true).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("+", true).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("@", true).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("//", true).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier(".", true).getSuggestion());
}
/**
* Tests the method IdentifierUtils.makeIdentifierName(String, boolean) to make sure
* that it performs the proper corrections on the argument string and returns
* a valid identifier name with the first character in lowercase.
*/
public void testMakeIdentifierName_StringBoolean_notConstructor() {
assertTrue(IdentifierUtils.makeValidatedIdentifier("foo", false).isValid());
assertTrue(IdentifierUtils.makeValidatedIdentifier("bar", false).isValid());
assertTrue(IdentifierUtils.makeValidatedIdentifier("bar2", false).isValid());
assertTrue(IdentifierUtils.makeValidatedIdentifier("bar_", false).isValid());
assertEquals("int", IdentifierUtils.makeValidatedIdentifier("Int", false).getSuggestion());
assertEquals("intPair", IdentifierUtils.makeValidatedIdentifier("IntPair", false).getSuggestion());
assertEquals("m2", IdentifierUtils.makeValidatedIdentifier("_m2", false).getSuggestion());
assertEquals("m_2", IdentifierUtils.makeValidatedIdentifier("m 2", false).getSuggestion());
assertEquals("m_2_", IdentifierUtils.makeValidatedIdentifier(" m 2 ", false).getSuggestion());
assertEquals("camelCase", IdentifierUtils.makeValidatedIdentifier("Camel,case", false).getSuggestion());
assertEquals("let0", IdentifierUtils.makeValidatedIdentifier("let", false).getSuggestion());
assertEquals("class0", IdentifierUtils.makeValidatedIdentifier("class", false).getSuggestion());
assertEquals("if0", IdentifierUtils.makeValidatedIdentifier("if", false).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("", false).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("", false).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("_", false).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("6", false).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("\n", false).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier(" ", false).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("", false).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("\u3721", false).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("~", false).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("+", false).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("@", false).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier("//", false).getSuggestion());
assertNull(IdentifierUtils.makeValidatedIdentifier(".", false).getSuggestion());
}
}