/*
* Copyright (C) 2012-2015 DataStax Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.datastax.driver.mapping;
import org.testng.annotations.Test;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Test for JAVA-1316 - test combinations of different
* {@link NamingConventions} implementation.
*/
public class NamingConventionsTest {
// test lower camel case inputs
@Test(groups = "unit")
public void lower_camel_case_to_upper_camel_case() {
test(
NamingConventions.LOWER_CAMEL_CASE,
NamingConventions.UPPER_CAMEL_CASE,
"myXmlParser",
"MyXmlParser"
);
}
@Test(groups = "unit")
public void lower_camel_case_to_lower_snake_case() {
test(
NamingConventions.LOWER_CAMEL_CASE,
NamingConventions.LOWER_SNAKE_CASE,
"myXmlParser",
"my_xml_parser"
);
}
@Test(groups = "unit")
public void lower_camel_case_to_upper_snake_case() {
test(
NamingConventions.LOWER_CAMEL_CASE,
NamingConventions.UPPER_SNAKE_CASE,
"myXmlParser",
"MY_XML_PARSER"
);
}
@Test(groups = "unit")
public void lower_camel_case_to_lower_lisp_case() {
test(
NamingConventions.LOWER_CAMEL_CASE,
NamingConventions.LOWER_LISP_CASE,
"myXmlParser",
"my-xml-parser"
);
}
@Test(groups = "unit")
public void lower_camel_case_to_upper_lisp_case() {
test(
NamingConventions.LOWER_CAMEL_CASE,
NamingConventions.UPPER_LISP_CASE,
"myXmlParser",
"MY-XML-PARSER"
);
}
@Test(groups = "unit")
public void lower_camel_case_to_lower_case() {
test(
NamingConventions.LOWER_CAMEL_CASE,
NamingConventions.LOWER_CASE,
"myXmlParser",
"myxmlparser"
);
}
@Test(groups = "unit")
public void lower_camel_case_to_upper_case() {
test(
NamingConventions.LOWER_CAMEL_CASE,
NamingConventions.UPPER_CASE,
"myXmlParser",
"MYXMLPARSER"
);
}
// test upper camel case inputs
@Test(groups = "unit")
public void upper_camel_case_to_lower_camel_case() {
test(
NamingConventions.UPPER_CAMEL_CASE,
NamingConventions.LOWER_CAMEL_CASE,
"MyXmlParser",
"myXmlParser"
);
}
@Test(groups = "unit")
public void upper_camel_case_to_lower_snake_case() {
test(
NamingConventions.UPPER_CAMEL_CASE,
NamingConventions.LOWER_SNAKE_CASE,
"MyXmlParser",
"my_xml_parser"
);
}
@Test(groups = "unit")
public void upper_camel_case_to_upper_snake_case() {
test(
NamingConventions.UPPER_CAMEL_CASE,
NamingConventions.UPPER_SNAKE_CASE,
"MyXmlParser",
"MY_XML_PARSER"
);
}
@Test(groups = "unit")
public void upper_camel_case_to_lower_lisp_case() {
test(
NamingConventions.UPPER_CAMEL_CASE,
NamingConventions.LOWER_LISP_CASE,
"MyXmlParser",
"my-xml-parser"
);
}
@Test(groups = "unit")
public void upper_camel_case_to_upper_lisp_case() {
test(
NamingConventions.UPPER_CAMEL_CASE,
NamingConventions.UPPER_LISP_CASE,
"MyXmlParser",
"MY-XML-PARSER"
);
}
@Test(groups = "unit")
public void upper_camel_case_to_lower_case() {
test(
NamingConventions.UPPER_CAMEL_CASE,
NamingConventions.LOWER_CASE,
"MyXmlParser",
"myxmlparser"
);
}
// test lower snake case inputs
@Test(groups = "unit")
public void lower_snake_case_to_lower_camel_case() {
test(
NamingConventions.LOWER_SNAKE_CASE,
NamingConventions.LOWER_CAMEL_CASE,
"my_xml_parser",
"myXmlParser"
);
}
@Test(groups = "unit")
public void lower_snake_case_to_upper_camel_case() {
test(
NamingConventions.LOWER_SNAKE_CASE,
NamingConventions.UPPER_CAMEL_CASE,
"my_xml_parser",
"MyXmlParser"
);
}
@Test(groups = "unit")
public void lower_snake_case_to_upper_snake_case() {
test(
NamingConventions.LOWER_SNAKE_CASE,
NamingConventions.UPPER_SNAKE_CASE,
"my_xml_parser",
"MY_XML_PARSER"
);
}
@Test(groups = "unit")
public void lower_snake_case_to_lower_lisp_case() {
test(
NamingConventions.LOWER_SNAKE_CASE,
NamingConventions.LOWER_LISP_CASE,
"my_xml_parser",
"my-xml-parser"
);
}
@Test(groups = "unit")
public void lower_snake_case_to_upper_lisp_case() {
test(
NamingConventions.LOWER_SNAKE_CASE,
NamingConventions.UPPER_LISP_CASE,
"my_xml_parser",
"MY-XML-PARSER"
);
}
@Test(groups = "unit")
public void lower_snake_case_to_lower_case() {
test(
NamingConventions.LOWER_SNAKE_CASE,
NamingConventions.LOWER_CASE,
"my_xml_parser",
"myxmlparser"
);
}
// test upper snake case inputs
@Test(groups = "unit")
public void upper_snake_case_to_lower_camel_case() {
test(
NamingConventions.UPPER_SNAKE_CASE,
NamingConventions.LOWER_CAMEL_CASE,
"MY_XML_PARSER",
"myXmlParser"
);
}
@Test(groups = "unit")
public void upper_snake_case_to_upper_camel_case() {
test(
NamingConventions.UPPER_SNAKE_CASE,
NamingConventions.UPPER_CAMEL_CASE,
"MY_XML_PARSER",
"MyXmlParser"
);
}
@Test(groups = "unit")
public void upper_snake_case_to_lower_snake_case() {
test(
NamingConventions.UPPER_SNAKE_CASE,
NamingConventions.LOWER_SNAKE_CASE,
"MY_XML_PARSER",
"my_xml_parser"
);
}
@Test(groups = "unit")
public void upper_snake_case_to_lower_lisp_case() {
test(
NamingConventions.UPPER_SNAKE_CASE,
NamingConventions.LOWER_LISP_CASE,
"MY_XML_PARSER",
"my-xml-parser"
);
}
@Test(groups = "unit")
public void upper_snake_case_to_upper_lisp_case() {
test(
NamingConventions.UPPER_SNAKE_CASE,
NamingConventions.UPPER_LISP_CASE,
"MY_XML_PARSER",
"MY-XML-PARSER"
);
}
@Test(groups = "unit")
public void upper_snake_case_to_lower_case() {
test(
NamingConventions.UPPER_SNAKE_CASE,
NamingConventions.LOWER_CASE,
"MY_XML_PARSER",
"myxmlparser"
);
}
// test lower lisp case inputs
@Test(groups = "unit")
public void lower_lisp_case_to_lower_camel_case() {
test(
NamingConventions.LOWER_LISP_CASE,
NamingConventions.LOWER_CAMEL_CASE,
"my-xml-parser",
"myXmlParser"
);
}
@Test(groups = "unit")
public void lower_lisp_case_to_upper_camel_case() {
test(
NamingConventions.LOWER_LISP_CASE,
NamingConventions.UPPER_CAMEL_CASE,
"my-xml-parser",
"MyXmlParser"
);
}
@Test(groups = "unit")
public void lower_lisp_case_to_lower_snake_case() {
test(
NamingConventions.LOWER_LISP_CASE,
NamingConventions.LOWER_SNAKE_CASE,
"my-xml-parser",
"my_xml_parser"
);
}
@Test(groups = "unit")
public void lower_lisp_case_to_upper_snake_case() {
test(
NamingConventions.LOWER_LISP_CASE,
NamingConventions.UPPER_SNAKE_CASE,
"my-xml-parser",
"MY_XML_PARSER"
);
}
@Test(groups = "unit")
public void lower_lisp_case_to_upper_lisp_case() {
test(
NamingConventions.LOWER_LISP_CASE,
NamingConventions.UPPER_LISP_CASE,
"my-xml-parser",
"MY-XML-PARSER"
);
}
@Test(groups = "unit")
public void lower_lisp_case_to_lower_case() {
test(
NamingConventions.LOWER_LISP_CASE,
NamingConventions.LOWER_CASE,
"my-xml-parser",
"myxmlparser"
);
}
// test upper lisp case inputs
@Test(groups = "unit")
public void upper_lisp_case_to_lower_camel_case() {
test(
NamingConventions.UPPER_LISP_CASE,
NamingConventions.LOWER_CAMEL_CASE,
"MY-XML-PARSER",
"myXmlParser"
);
}
@Test(groups = "unit")
public void upper_lisp_case_to_upper_camel_case() {
test(
NamingConventions.UPPER_LISP_CASE,
NamingConventions.UPPER_CAMEL_CASE,
"MY-XML-PARSER",
"MyXmlParser"
);
}
@Test(groups = "unit")
public void upper_lisp_case_to_lower_snake_case() {
test(
NamingConventions.UPPER_LISP_CASE,
NamingConventions.LOWER_SNAKE_CASE,
"MY-XML-PARSER",
"my_xml_parser"
);
}
@Test(groups = "unit")
public void upper_lisp_case_to_upper_snake_case() {
test(
NamingConventions.UPPER_LISP_CASE,
NamingConventions.UPPER_SNAKE_CASE,
"MY-XML-PARSER",
"MY_XML_PARSER"
);
}
@Test(groups = "unit")
public void upper_lisp_case_to_lower_lisp_case() {
test(
NamingConventions.UPPER_LISP_CASE,
NamingConventions.LOWER_LISP_CASE,
"MY-XML-PARSER",
"my-xml-parser"
);
}
@Test(groups = "unit")
public void upper_lisp_case_to_lower_case() {
test(
NamingConventions.UPPER_LISP_CASE,
NamingConventions.LOWER_CASE,
"MY-XML-PARSER",
"myxmlparser"
);
}
// test special camel case settings
@Test(groups = "unit")
public void lower_camel_case_with_prefix_to_upper_camel_case() {
test(
new NamingConventions.LowerCamelCase("_"),
NamingConventions.UPPER_CAMEL_CASE,
"_myXmlParser",
"MyXmlParser"
);
test(
new NamingConventions.LowerCamelCase("_"),
NamingConventions.UPPER_CAMEL_CASE,
"myXmlParser",
"MyXmlParser"
);
test(
new NamingConventions.LowerCamelCase("_", "m"),
NamingConventions.UPPER_CAMEL_CASE,
"mMyXmlParser",
"MyXmlParser"
);
test(
new NamingConventions.LowerCamelCase("_", "m"),
NamingConventions.UPPER_CAMEL_CASE,
"_MyXmlParser",
"MyXmlParser"
);
}
@Test(groups = "unit")
public void lower_camel_case_with_prefix_to_lower_snake_case() {
test(
new NamingConventions.LowerCamelCase("_"),
NamingConventions.LOWER_SNAKE_CASE,
"_myXmlParser",
"my_xml_parser"
);
test(
new NamingConventions.LowerCamelCase("_"),
NamingConventions.LOWER_SNAKE_CASE,
"myXmlParser",
"my_xml_parser"
);
test(
new NamingConventions.LowerCamelCase("_", "m"),
NamingConventions.LOWER_SNAKE_CASE,
"mMyXmlParser",
"my_xml_parser"
);
test(
new NamingConventions.LowerCamelCase("_", "m"),
NamingConventions.LOWER_SNAKE_CASE,
"_MyXmlParser",
"my_xml_parser"
);
}
@Test(groups = "unit")
public void upper_camel_case_with_prefix_to_upper_camel_case() {
test(
new NamingConventions.UpperCamelCase("_"),
NamingConventions.UPPER_CAMEL_CASE,
"_MyXmlParser",
"MyXmlParser"
);
test(
new NamingConventions.UpperCamelCase("_"),
NamingConventions.UPPER_CAMEL_CASE,
"MyXmlParser",
"MyXmlParser"
);
test(
new NamingConventions.UpperCamelCase("_", "m"),
NamingConventions.UPPER_CAMEL_CASE,
"mMyXmlParser",
"MyXmlParser"
);
test(
new NamingConventions.UpperCamelCase("_", "m"),
NamingConventions.UPPER_CAMEL_CASE,
"_MyXmlParser",
"MyXmlParser"
);
}
@Test(groups = "unit")
public void upper_camel_case_with_prefix_to_upper_snake_case() {
test(
new NamingConventions.UpperCamelCase("_"),
NamingConventions.LOWER_SNAKE_CASE,
"_MyXmlParser",
"my_xml_parser"
);
test(
new NamingConventions.UpperCamelCase("_"),
NamingConventions.LOWER_SNAKE_CASE,
"MyXmlParser",
"my_xml_parser"
);
test(
new NamingConventions.UpperCamelCase("_", "m"),
NamingConventions.LOWER_SNAKE_CASE,
"mMyXmlParser",
"my_xml_parser"
);
test(
new NamingConventions.UpperCamelCase("_", "m"),
NamingConventions.LOWER_SNAKE_CASE,
"_MyXmlParser",
"my_xml_parser"
);
}
@Test(groups = "unit")
public void lower_camel_case_with_abbr_to_lower_camel_case_with_no_abbr() {
test(
new NamingConventions.LowerCamelCase(true),
new NamingConventions.LowerCamelCase(false),
"myXMLParser",
"myXmlParser"
);
}
@Test(groups = "unit")
public void upper_camel_case_with_abbr_to_lower_camel_case_with_abbr() {
test(
new NamingConventions.UpperCamelCase(true),
new NamingConventions.LowerCamelCase(true),
"MyXMLParser",
"myXMLParser"
);
}
private void test(NamingConvention inputConvention, NamingConvention outputConvention, String input, String output) {
DefaultNamingStrategy namingStrategy = new DefaultNamingStrategy(inputConvention, outputConvention);
String result = namingStrategy.toCassandraName(input);
assertThat(result).isEqualTo(output);
}
}