@Test
  public <P> void testClassDescriptorperGenerator1() {
    final ClassDescriptor<Employee> classMapper =
        new ClassDescriptorBuilderImpl<Employee>(Employee.class, new TypeConverterFactory())
            .build();
    assertNotNull(classMapper);

    assertEquals("", classMapper.getTableInfo().getSchemaName()); // $NON-NLS-1$
    assertEquals("EMPLOYEE", classMapper.getTableInfo().getTableNameWithSchema()); // $NON-NLS-1$
    assertEquals(5, classMapper.getAllColumnJavaNames().length);
    assertEquals(0, classMapper.getPrimaryKeyColumnJavaNames().length);
    assertEquals(5, classMapper.getNotPrimaryKeyColumnJavaNames().length);

    try {
      classMapper.getFieldDescriptorByJavaName("" + new Date().getTime()); // $NON-NLS-1$
      fail("An exception should be thrwn here!"); // $NON-NLS-1$
    } catch (RuntimeException e) {
      // do nothing
    }

    for (final String col : classMapper.getAllColumnJavaNames()) {
      System.out.println("Search column " + col); // $NON-NLS-1$
    }

    for (final String col : classMapper.getPrimaryKeyColumnJavaNames()) {
      System.out.println("Search column " + col); // $NON-NLS-1$
      final FieldDescriptor<Employee, P> column = classMapper.getFieldDescriptorByJavaName(col);
      assertTrue(column.isIdentifier());
    }

    for (final String col : classMapper.getNotPrimaryKeyColumnJavaNames()) {
      System.out.println("Search column " + col); // $NON-NLS-1$
      final FieldDescriptor<Employee, P> column = classMapper.getFieldDescriptorByJavaName(col);
      assertFalse(column.isIdentifier());
    }

    assertTrue(Arrays.asList(classMapper.getAllColumnJavaNames()).contains("id")); // $NON-NLS-1$
    assertTrue(Arrays.asList(classMapper.getAllColumnJavaNames()).contains("age")); // $NON-NLS-1$
    assertTrue(Arrays.asList(classMapper.getAllColumnJavaNames()).contains("name")); // $NON-NLS-1$
    assertTrue(
        Arrays.asList(classMapper.getAllColumnJavaNames()).contains("surname")); // $NON-NLS-1$
    assertTrue(
        Arrays.asList(classMapper.getAllColumnJavaNames())
            .contains("employeeNumber")); // $NON-NLS-1$

    assertTrue(
        Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames()).contains("id")); // $NON-NLS-1$
    assertTrue(
        Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames())
            .contains("age")); // $NON-NLS-1$
    assertTrue(
        Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames())
            .contains("name")); // $NON-NLS-1$
    assertTrue(
        Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames())
            .contains("surname")); // $NON-NLS-1$
    assertTrue(
        Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames())
            .contains("employeeNumber")); // $NON-NLS-1$

    assertEquals(
        "ID",
        classMapper
            .getFieldDescriptorByJavaName("id")
            .getColumnInfo()
            .getDBColumnName()); //$NON-NLS-1$ //$NON-NLS-2$
    assertEquals(
        "AGE",
        classMapper
            .getFieldDescriptorByJavaName("age")
            .getColumnInfo()
            .getDBColumnName()); //$NON-NLS-1$ //$NON-NLS-2$
    assertEquals(
        "NAME",
        classMapper
            .getFieldDescriptorByJavaName("name")
            .getColumnInfo()
            .getDBColumnName()); //$NON-NLS-1$ //$NON-NLS-2$
    assertEquals(
        "SURNAME",
        classMapper
            .getFieldDescriptorByJavaName("surname")
            .getColumnInfo()
            .getDBColumnName()); //$NON-NLS-1$ //$NON-NLS-2$
    assertEquals(
        "EMPLOYEE_NUMBER",
        classMapper
            .getFieldDescriptorByJavaName("employeeNumber")
            .getColumnInfo()
            .getDBColumnName()); //$NON-NLS-1$ //$NON-NLS-2$
  }
  @Test
  public <P> void testClassDescriptorperGenerator3() {

    final ClassDescriptor<Blobclob_ByteArray> classMapper =
        new ClassDescriptorBuilderImpl<Blobclob_ByteArray>(
                Blobclob_ByteArray.class, new TypeConverterFactory())
            .build();
    assertNotNull(classMapper);

    assertEquals("", classMapper.getTableInfo().getSchemaName()); // $NON-NLS-1$
    assertEquals("BLOBCLOB", classMapper.getTableInfo().getTableNameWithSchema()); // $NON-NLS-1$
    assertEquals(3, classMapper.getAllColumnJavaNames().length);
    assertEquals(1, classMapper.getPrimaryKeyColumnJavaNames().length);
    assertEquals(2, classMapper.getNotPrimaryKeyColumnJavaNames().length);
    assertEquals(1, classMapper.getAllGeneratedColumnJavaNames().length);

    for (final String col : classMapper.getAllColumnJavaNames()) {
      System.out.println("Search column " + col); // $NON-NLS-1$
    }

    for (final String col : classMapper.getPrimaryKeyColumnJavaNames()) {
      System.out.println("Search column " + col); // $NON-NLS-1$
      final FieldDescriptor<Blobclob_ByteArray, P> column =
          classMapper.getFieldDescriptorByJavaName(col);
      assertTrue(column.isIdentifier());
    }

    for (final String col : classMapper.getNotPrimaryKeyColumnJavaNames()) {
      System.out.println("Search column " + col); // $NON-NLS-1$
      final FieldDescriptor<Blobclob_ByteArray, P> column =
          classMapper.getFieldDescriptorByJavaName(col);
      assertFalse(column.isIdentifier());
    }

    assertTrue(Arrays.asList(classMapper.getAllColumnJavaNames()).contains("index")); // $NON-NLS-1$
    assertTrue(Arrays.asList(classMapper.getAllColumnJavaNames()).contains("blob")); // $NON-NLS-1$
    assertTrue(Arrays.asList(classMapper.getAllColumnJavaNames()).contains("clob")); // $NON-NLS-1$

    assertTrue(
        Arrays.asList(classMapper.getAllGeneratedColumnJavaNames())
            .contains("index")); // $NON-NLS-1$

    assertTrue(
        Arrays.asList(classMapper.getPrimaryKeyColumnJavaNames()).contains("index")); // $NON-NLS-1$

    assertTrue(
        Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames())
            .contains("blob")); // $NON-NLS-1$
    assertTrue(
        Arrays.asList(classMapper.getNotPrimaryKeyColumnJavaNames())
            .contains("clob")); // $NON-NLS-1$

    assertEquals(
        "ID",
        classMapper
            .getFieldDescriptorByJavaName("index")
            .getColumnInfo()
            .getDBColumnName()); //$NON-NLS-1$ //$NON-NLS-2$
    assertEquals(
        "BLOB",
        classMapper
            .getFieldDescriptorByJavaName("blob")
            .getColumnInfo()
            .getDBColumnName()); //$NON-NLS-1$ //$NON-NLS-2$
    assertEquals(
        "CLOB",
        classMapper
            .getFieldDescriptorByJavaName("clob")
            .getColumnInfo()
            .getDBColumnName()); //$NON-NLS-1$ //$NON-NLS-2$
  }