/**
*
* Copyright (c) 2006-2017, Speedment, Inc. All Rights Reserved.
*
* 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.
*/
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.speedment.generator;
import com.speedment.common.injector.Injector;
import com.speedment.generator.translator.TranslatorSupport;
import com.speedment.generator.translator.namer.JavaLanguageNamer;
import com.speedment.runtime.config.Table;
import org.junit.*;
import java.util.Optional;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
/**
*
* @author Per Minborg
*/
public class TranslatorSupportTest extends SimpleModel {
private static final String PATH = "com.company.myproject.mydbms.myschema.user";
private TranslatorSupport<Table> instance;
public TranslatorSupportTest() {
}
@BeforeClass
public static void setUpClass() {
}
@AfterClass
public static void tearDownClass() {
}
@Before
public void setUp() {
instance = new TranslatorSupport<>(
speedment.getOrThrow(Injector.class), table
);
}
@After
public void tearDown() {
}
@Test
public void testNamer() {
assertEquals(speedment.getOrThrow(JavaLanguageNamer.class), instance.namer());
}
@Test
public void testDocument() {
assertEquals(table, instance.tableOrThrow());
}
@Test
public void testEntityName() {
assertEquals("User", instance.entityName());
}
@Test
public void testEntityImplName() {
assertEquals("UserImpl", instance.entityImplName());
}
@Test
public void testGeneratedEntityName() {
assertEquals("GeneratedUser", instance.generatedEntityName());
}
@Test
public void testGeneratedEntityImplName() {
assertEquals("GeneratedUserImpl", instance.generatedEntityImplName());
}
@Test
public void testManagerName() {
assertEquals("UserManager", instance.managerName());
}
@Test
public void testManagerImplName() {
assertEquals("UserManagerImpl", instance.managerImplName());
}
@Test
public void testGeneratedManagerName() {
assertEquals("GeneratedUserManager", instance.generatedManagerName());
}
@Test
public void testGeneratedManagerImplName() {
assertEquals("GeneratedUserManagerImpl", instance.generatedManagerImplName());
}
@Test
public void testEntityType() {
assertEquals(fullName("User"), instance.entityType().getTypeName());
}
@Test
public void testEntityImplType() {
assertEquals(fullName("UserImpl"), instance.entityImplType().getTypeName());
}
@Test
public void testGeneratedEntityType() {
assertEquals(fullNameGen("GeneratedUser"), instance.generatedEntityType().getTypeName());
}
@Test
public void testGeneratedEntityImplType() {
assertEquals(fullNameGen("GeneratedUserImpl"), instance.generatedEntityImplType().getTypeName());
}
@Test
public void testManagerType() {
assertEquals(fullName("UserManager"), instance.managerType().getTypeName());
}
@Test
public void testManagerImplType() {
assertEquals(fullName("UserManagerImpl"), instance.managerImplType().getTypeName());
}
@Test
public void testGeneratedManagerType() {
assertEquals(fullNameGen("GeneratedUserManager"), instance.generatedManagerType().getTypeName());
}
@Test
public void testGeneratedManagerImplType() {
assertEquals(fullNameGen("GeneratedUserManagerImpl"), instance.generatedManagerImplType().getTypeName());
}
@Test
public void testVariableName_0args() {
assertEquals("user", instance.variableName());
}
@Test
public void testVariableName_HasAlias() {
assertEquals("mySchema", instance.variableName(schema));
}
@Test
public void testTypeName_0args() {
assertEquals("User", instance.typeName());
}
@Test
public void testTypeName_HasAlias() {
assertEquals("MySchema", instance.typeName(schema));
}
@Test
public void testTypeName_Project() {
assertEquals("MyProject", instance.typeName(project));
}
@Test
public void testManagerTypeName_0args() {
assertEquals("UserManager", instance.managerTypeName());
}
@Test
public void testManagerTypeName_HasAlias() {
assertEquals("UserManager", instance.managerTypeName(table));
}
@Test
public void testFullyQualifiedTypeName_0args() {
assertEquals(fullName("User"), instance.fullyQualifiedTypeName());
}
@Test
public void testFullyQualifiedTypeName_String() {
assertEquals(fullName("olle.User"), instance.fullyQualifiedTypeName("olle"));
}
@Test
@Ignore
public void testFullyQualifiedTypeName_String_String() {
// Todo: implement this test
String result = instance.fullyQualifiedTypeName("subPath", "filePrefix");
fail("The test case is a prototype.");
}
@Test
public void testBasePackageName() {
assertEquals(PATH, instance.basePackageName());
}
@Test
public void testBaseDirectoryName() {
assertEquals(PATH.replace('.', '/'), instance.baseDirectoryName());
}
@Test
public void testProject() {
assertEquals(project, instance.project().get());
}
@Test
public void testDbms() {
assertEquals(dbms, instance.dbms().get());
}
@Test
public void testSchema() {
assertEquals(schema, instance.schema().get());
}
@Test
public void testTable() {
assertEquals(table, instance.table().get());
}
@Test
public void testColumn() {
assertEquals(Optional.empty(), instance.column());
}
@Test
public void testProjectOrThrow() {
assertEquals(project, instance.projectOrThrow());
}
@Test
public void testDbmsOrThrow() {
assertEquals(dbms, instance.dbmsOrThrow());
}
@Test
public void testSchemaOrThrow() {
assertEquals(schema, instance.schemaOrThrow());
}
@Test
public void testTableOrThrow() {
assertEquals(table, instance.tableOrThrow());
}
@Test(expected = java.lang.IllegalStateException.class)
public void testColumnOrThrow() {
instance.columnOrThrow();
}
@Test
public void testShortTableName() {
final TranslatorSupport<Table> support = new TranslatorSupport<>(
speedment.getOrThrow(Injector.class), table2
);
assertEquals("sP", support.variableName());
}
private String fullName(String s) {
return PATH + "." + s;
}
private String fullNameGen(String s) {
return PATH + ".generated." + s;
}
}