/*
* Copyright 2014 Red Hat, Inc. and/or its affiliates.
*
* 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 org.kie.workbench.common.services.datamodeller.parser;
import org.junit.Test;
import org.kie.workbench.common.services.datamodeller.parser.descr.DescriptorFactory;
import org.kie.workbench.common.services.datamodeller.parser.descr.DescriptorFactoryImpl;
import org.kie.workbench.common.services.datamodeller.parser.descr.FieldDescr;
import org.kie.workbench.common.services.datamodeller.parser.descr.TypeDescr;
import org.kie.workbench.common.services.datamodeller.parser.util.JavaDriverUtils;
import org.kie.workbench.common.services.datamodeller.util.DriverUtils;
import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.*;
public class Pojo1FieldParsingTest extends JavaParserBaseTest {
public Pojo1FieldParsingTest( ) {
super( "Pojo1.java" );
init();
}
List<String> fieldSentences = new ArrayList<String>( );
List<TypeTestResult> typeTestResults = new ArrayList<TypeTestResult>( );
private void init() {
fieldSentences.add( "int field1;" );
typeTestResults.add( new TypeTestResult(true, false, false, false) );
fieldSentences.add( "java.lang.Integer field2;" );
typeTestResults.add( new TypeTestResult(false, true, false, false) );
fieldSentences.add( "Integer field3;" );
typeTestResults.add( new TypeTestResult(false, true, false, false) );
fieldSentences.add( "List<Integer> field4;" );
typeTestResults.add( new TypeTestResult(false, false, false, true) );
fieldSentences.add( "java.util.List<Integer> field5;" );
typeTestResults.add( new TypeTestResult(false, false, false, true) );
fieldSentences.add( "List<java.lang.Integer> field6;" );
typeTestResults.add( new TypeTestResult(false, false, false, true) );
fieldSentences.add( "java.util.List<java.lang.Integer> field7;" );
typeTestResults.add( new TypeTestResult(false, false, false, true) );
fieldSentences.add( "private /*comment2*/ java.lang.String name ;" );
typeTestResults.add( new TypeTestResult(false, true, false, false) );
fieldSentences.add( "public static int a = 3 , b = 4 ;" );
typeTestResults.add( new TypeTestResult(true, false, false, false) );
fieldSentences.add( "java.util.List<List<String>> list;" );
typeTestResults.add( new TypeTestResult(false, false, false, false) );
}
@Test
public void testFieldsReading1( ) {
try {
assertClass( );
List<FieldDescr> fields = parser.getFileDescr( ).getClassDescr( ).getFields( );
assertEquals( fieldSentences.size(), fields.size() );
for ( int i = 0; i < fieldSentences.size(); i++ ) {
assertEquals( typeTestResults.get( i ).primitive, JavaDriverUtils.isPrimitiveType( fields.get( i ).getType() ));
assertEquals( typeTestResults.get( i ).simpleClass, JavaDriverUtils.isSimpleClass( fields.get( i ).getType() ));
assertEquals( typeTestResults.get( i ).array, JavaDriverUtils.isArray( fields.get( i ).getType() ));
Object[] genericsCheck = JavaDriverUtils.isSimpleGeneric( fields.get( i ).getType() );
assertEquals( typeTestResults.get( i ).simpleGeneric, genericsCheck[0] );
}
} catch ( Exception e ) {
e.printStackTrace( );
fail( "Test failed: " + e.getMessage());
}
}
public class TypeTestResult {
public TypeTestResult( boolean primitive, boolean simpleClass, boolean array, boolean simpleGeneric) {
this.primitive = primitive;
this.simpleClass = simpleClass;
this.array = array;
this.simpleGeneric = simpleGeneric;
}
public boolean primitive;
public boolean simpleClass;
public boolean array;
public boolean simpleGeneric;
}
}