All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jpattern.orm.test.mapper.ClassMapperGeneratorTest Maven / Gradle / Ivy

package com.jpattern.orm.test.mapper;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;

import java.util.Arrays;
import java.util.Date;

import org.junit.Test;

import com.jpattern.orm.BaseTestShared;
import com.jpattern.orm.classmapper.ClassMapperBuilder;
import com.jpattern.orm.classmapper.ClassTableMapBuilder;
import com.jpattern.orm.classmapper.IClassMapper;
import com.jpattern.orm.classmapper.IClassMapperBuilder;
import com.jpattern.orm.classmapper.IColumn;
import com.jpattern.orm.classmapper.NullColumn;
import com.jpattern.orm.classmapper.TableMap;
import com.jpattern.orm.test.domain.BeanWithValuesGenerator;
import com.jpattern.orm.test.domain.Blobclob_ByteArray;
import com.jpattern.orm.test.domain.Blobclob_Stream;
import com.jpattern.orm.test.domain.Employee;

/**
 * 
 * @author Francesco Cina
 *
 * 01/giu/2011
 */
public class ClassMapperGeneratorTest extends BaseTestShared {

	@Override
	protected void setUp() throws Exception {
	}

	@Override
	protected void tearDown() throws Exception {
	}


	@Test
	public void testClassMapperGenerator1() throws Exception {
		final Class clazz = Employee.class;
		final TableMap classDBMap = new TableMap();
		new ClassTableMapBuilder(clazz, classDBMap).updateTableMap();
		final IClassMapperBuilder classMapperGenerator = new ClassMapperBuilder(clazz, classDBMap);

		final IClassMapper classMapper = classMapperGenerator.generate();
		assertNotNull(classMapper);

		assertEquals("" , classMapper.getTableMap().getSchemaName());
		assertEquals("EMPLOYEE", classMapper.getTableMap().getTableNameWithSchema());
		assertEquals(5 , classMapper.getAllColumnJavaNames().length );
		assertEquals(1 , classMapper.getPrimaryKeyColumnJavaNames().length );
		assertEquals(4 , classMapper.getNotPrimaryKeyColumnJavaNames().length );

		assertEquals( clazz , classMapper.getMappedClass());

		assertTrue( classMapper.getColumnWithJavaName("" + new Date().getTime()) instanceof NullColumn );

		for (final String col : classMapper.getAllColumnJavaNames()) {
			System.out.println("Search column " + col);
			assertFalse( classMapper.getColumnWithJavaName(col) instanceof NullColumn );
		}

		for (final String col : classMapper.getPrimaryKeyColumnJavaNames()) {
			System.out.println("Search column " + col);
			final IColumn column = classMapper.getColumnWithJavaName(col);
			assertFalse( column instanceof NullColumn );
			assertTrue( column.isIdentifying() );
		}

		for (final String col : classMapper.getNotPrimaryKeyColumnJavaNames()) {
			System.out.println("Search column " + col);
			final IColumn column = classMapper.getColumnWithJavaName(col);
			assertFalse( column instanceof NullColumn );
			assertFalse( column.isIdentifying() );
		}

		assertTrue( Arrays.asList(classMapper.getAllColumnJavaNames()).contains( "id" ) );
		assertTrue( Arrays.asList(classMapper.getAllColumnJavaNames()).contains( "age" ) );
		assertTrue( Arrays.asList(classMapper.getAllColumnJavaNames()).contains( "name" ) );
		assertTrue( Arrays.asList(classMapper.getAllColumnJavaNames()).contains( "surname" ) );
		assertTrue( Arrays.asList(classMapper.getAllColumnJavaNames()).contains( "employeeNumber" ) );

		assertTrue( Arrays.asList(classMapper.getPrimaryKeyColumnJavaNames()).contains( "id" ) );

		assertTrue( Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames()).contains( "age" ) );
		assertTrue( Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames()).contains( "name" ) );
		assertTrue( Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames()).contains( "surname" ) );
		assertTrue( Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames()).contains( "employeeNumber" ) );

		assertEquals( "ID" ,  classMapper.getColumnWithJavaName("id").getName() );
		assertEquals( "AGE" ,  classMapper.getColumnWithJavaName("age").getName() );
		assertEquals( "NAME" ,  classMapper.getColumnWithJavaName("name").getName() );
		assertEquals( "SURNAME" ,  classMapper.getColumnWithJavaName("surname").getName() );
		assertEquals( "EMPLOYEE_NUMBER" ,  classMapper.getColumnWithJavaName("employeeNumber").getName() );

	}

	@Test
	public void testClassMapperGenerator2() throws Exception {

		final Class clazz = Blobclob_Stream.class;
		final TableMap classDBMap = new TableMap();
		new ClassTableMapBuilder(clazz, classDBMap).updateTableMap();
		//		connectionProvider.updateTableMap(classDBMap , true);
		final IClassMapperBuilder classMapperGenerator = new ClassMapperBuilder(clazz, classDBMap);

		final IClassMapper classMapper = classMapperGenerator.generate();
		assertNotNull(classMapper);

		assertEquals("" , classMapper.getTableMap().getSchemaName());
		assertEquals("BLOBCLOB", classMapper.getTableMap().getTableNameWithSchema());
		assertEquals(3 , classMapper.getAllColumnJavaNames().length );
		assertEquals(1 , classMapper.getPrimaryKeyColumnJavaNames().length );
		assertEquals(2 , classMapper.getNotPrimaryKeyColumnJavaNames().length );

		assertEquals( clazz , classMapper.getMappedClass());

		assertTrue( classMapper.getColumnWithJavaName("" + new Date().getTime()) instanceof NullColumn );

		for (final String col : classMapper.getAllColumnJavaNames()) {
			System.out.println("Search column " + col);
			assertFalse( classMapper.getColumnWithJavaName(col) instanceof NullColumn );
		}

		for (final String col : classMapper.getPrimaryKeyColumnJavaNames()) {
			System.out.println("Search column " + col);
			final IColumn column = classMapper.getColumnWithJavaName(col);
			assertFalse( column instanceof NullColumn );
			assertTrue( column.isIdentifying() );
		}

		for (final String col : classMapper.getNotPrimaryKeyColumnJavaNames()) {
			System.out.println("Search column " + col);
			final IColumn column = classMapper.getColumnWithJavaName(col);
			assertFalse( column instanceof NullColumn );
			assertFalse( column.isIdentifying() );
		}

		assertTrue( Arrays.asList(classMapper.getAllColumnJavaNames()).contains( "id" ) );
		assertTrue( Arrays.asList(classMapper.getAllColumnJavaNames()).contains( "blobInputStream" ) );
		assertTrue( Arrays.asList(classMapper.getAllColumnJavaNames()).contains( "clob" ) );

		assertTrue( Arrays.asList(classMapper.getPrimaryKeyColumnJavaNames()).contains( "id" ) );

		assertTrue( Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames()).contains( "blobInputStream" ) );
		assertTrue( Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames()).contains( "clob" ) );

		assertEquals( "ID" ,  classMapper.getColumnWithJavaName("id").getName() );
		assertEquals( "BLOB" ,  classMapper.getColumnWithJavaName("blobInputStream").getName() );
		assertEquals( "CLOB" ,  classMapper.getColumnWithJavaName("clob").getName() );

	}

	@Test
	public void testClassMapperGenerator3() throws Exception {

		final Class clazz = Blobclob_ByteArray.class;
		final TableMap classDBMap = new TableMap();
		new ClassTableMapBuilder(clazz, classDBMap).updateTableMap();
		//		connectionProvider.updateTableMap(classDBMap , true);
		final IClassMapperBuilder classMapperGenerator = new ClassMapperBuilder(clazz, classDBMap);

		final IClassMapper classMapper = classMapperGenerator.generate();
		assertNotNull(classMapper);

		assertEquals("" , classMapper.getTableMap().getSchemaName());
		assertEquals("BLOBCLOB", classMapper.getTableMap().getTableNameWithSchema());
		assertEquals(3 , classMapper.getAllColumnJavaNames().length );
		assertEquals(1 , classMapper.getPrimaryKeyColumnJavaNames().length );
		assertEquals(2 , classMapper.getNotPrimaryKeyColumnJavaNames().length );
		assertEquals(1 , classMapper.getAllGeneratedColumnJavaNames().length );
		assertEquals(1 , classMapper.getAllGeneratedColumnDBNames().length );

		assertEquals( clazz , classMapper.getMappedClass());

		assertTrue( classMapper.getColumnWithJavaName("" + new Date().getTime()) instanceof NullColumn );

		for (final String col : classMapper.getAllColumnJavaNames()) {
			System.out.println("Search column " + col);
			assertFalse( classMapper.getColumnWithJavaName(col) instanceof NullColumn );
		}

		for (final String col : classMapper.getPrimaryKeyColumnJavaNames()) {
			System.out.println("Search column " + col);
			final IColumn column = classMapper.getColumnWithJavaName(col);
			assertFalse( column instanceof NullColumn );
			assertTrue( column.isIdentifying() );
		}

		for (final String col : classMapper.getNotPrimaryKeyColumnJavaNames()) {
			System.out.println("Search column " + col);
			final IColumn column = classMapper.getColumnWithJavaName(col);
			assertFalse( column instanceof NullColumn );
			assertFalse( column.isIdentifying() );
		}

		assertTrue( Arrays.asList(classMapper.getAllColumnJavaNames()).contains( "index" ) );
		assertTrue( Arrays.asList(classMapper.getAllColumnJavaNames()).contains( "blob" ) );
		assertTrue( Arrays.asList(classMapper.getAllColumnJavaNames()).contains( "clob" ) );

		assertTrue( Arrays.asList(classMapper.getAllGeneratedColumnJavaNames()).contains( "index" ) );

		assertTrue( Arrays.asList(classMapper.getAllGeneratedColumnDBNames()).contains( "ID" ) );

		assertTrue( Arrays.asList(classMapper.getPrimaryKeyColumnJavaNames()).contains( "index" ) );

		assertTrue( Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames()).contains( "blob" ) );
		assertTrue( Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames()).contains( "clob" ) );

		assertEquals( "ID" ,  classMapper.getColumnWithJavaName("index").getName() );
		assertEquals( "BLOB" ,  classMapper.getColumnWithJavaName("blob").getName() );
		assertEquals( "CLOB" ,  classMapper.getColumnWithJavaName("clob").getName() );

	}

	@Test
	public void testBeanWithValuesGenerator() throws Exception {

		final Class clazz = BeanWithValuesGenerator.class;
		final TableMap classDBMap = new TableMap();
		new ClassTableMapBuilder(clazz, classDBMap).updateTableMap();
		//		connectionProvider.updateTableMap(classDBMap , true);
		final IClassMapperBuilder classMapperGenerator = new ClassMapperBuilder(clazz, classDBMap);

		final IClassMapper classMapper = classMapperGenerator.generate();
		assertNotNull(classMapper);

	}


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy