Skip to content

Commit 22519bf

Browse files
committed
Add unit test
1 parent 2abb5f4 commit 22519bf

File tree

4 files changed

+61
-17
lines changed

4 files changed

+61
-17
lines changed

core/esmf-aspect-model-java-generator/src/test/java/org/eclipse/esmf/aspectmodel/java/AspectModelJavaGeneratorTest.java

+39-6
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import java.util.List;
2929
import java.util.Optional;
3030
import java.util.Set;
31+
3132
import javax.xml.datatype.Duration;
3233
import javax.xml.datatype.XMLGregorianCalendar;
3334

@@ -63,16 +64,20 @@
6364
import org.junit.jupiter.params.provider.EnumSource;
6465

6566
public class AspectModelJavaGeneratorTest {
66-
private Collection<JavaGenerator> getGenerators( final TestAspect testAspect, final String customJavaPackageName ) {
67+
private Collection<JavaGenerator> getGenerators( final TestAspect testAspect, final JavaCodeGenerationConfig config ) {
6768
final Aspect aspect = TestResources.load( testAspect ).aspect();
68-
final JavaCodeGenerationConfig config = JavaCodeGenerationConfigBuilder.builder()
69-
.packageName( customJavaPackageName )
70-
.enableJacksonAnnotations( true )
71-
.executeLibraryMacros( false )
72-
.build();
7369
return List.of( new AspectModelJavaGenerator( aspect, config ) );
7470
}
7571

72+
private Collection<JavaGenerator> getGenerators( final TestAspect testAspect, final String customJavaPackageName ) {
73+
return getGenerators( testAspect,
74+
JavaCodeGenerationConfigBuilder.builder()
75+
.packageName( customJavaPackageName )
76+
.enableJacksonAnnotations( true )
77+
.executeLibraryMacros( false )
78+
.build() );
79+
}
80+
7681
private Collection<JavaGenerator> getGenerators( final TestAspect testAspect, final boolean enableJacksonAnnotations,
7782
final boolean executeLibraryMacros, final File templateLibPath ) {
7883
final Aspect aspect = TestResources.load( testAspect ).aspect();
@@ -524,6 +529,34 @@ ImmutableMap.<String, String> builder()
524529

525530
result.assertFields( "YesNo", ImmutableMap.<String, Object> builder().put( "value", String.class ).build(), new HashMap<>() );
526531
result.assertEnumConstants( "YesNo", ImmutableSet.of( "YES", "NO" ), Collections.emptyMap() );
532+
533+
assertThat( result.getGeneratedSource( new QualifiedName( "EvaluationResults", "org.eclipse.esmf.test" ) ) )
534+
.contains( "@JsonFormat" );
535+
}
536+
537+
@Test
538+
void testGenerateAspectModelWithEnumerationDisableJsonFormatAnnotation() throws IOException {
539+
final ImmutableMap<String, Object> expectedFieldsForAspectClass = ImmutableMap.<String, Object> builder()
540+
.put( "result", "EvaluationResults" )
541+
.put( "simpleResult", "YesNo" )
542+
.build();
543+
544+
final ImmutableMap<String, Object> expectedFieldsForEvaluationResult = ImmutableMap.<String, Object> builder()
545+
.put( "numericCode", Short.class.getSimpleName() )
546+
.put( "description", String.class.getSimpleName() )
547+
.build();
548+
549+
final TestAspect aspect = TestAspect.ASPECT_WITH_COMPLEX_ENUM;
550+
final JavaCodeGenerationConfig codeGenerationConfig = JavaCodeGenerationConfigBuilder.builder()
551+
.enableJacksonAnnotations( true )
552+
.executeLibraryMacros( false )
553+
.packageName( aspect.getUrn().getNamespaceMainPart() )
554+
.enableJacksonAnnotationJsonFormatShapeObject( false )
555+
.build();
556+
final GenerationResult result = TestContext.generateAspectCode().apply( getGenerators( aspect, codeGenerationConfig ) );
557+
558+
assertThat( result.getGeneratedSource( new QualifiedName( "EvaluationResults", "org.eclipse.esmf.test" ) ) )
559+
.doesNotContain( "@JsonFormat" );
527560
}
528561

529562
@Test

core/esmf-aspect-model-java-generator/src/test/java/org/eclipse/esmf/aspectmodel/java/GenerationResult.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,12 @@ class GenerationResult {
6565
private final long numFailedCompilationUnits;
6666
private final Collection<Problem> parseProblems;
6767
private final Map<QualifiedName, Class<?>> generatedClasses;
68-
68+
private final Map<QualifiedName, String> sources;
6969
final Map<String, CompilationUnit> compilationUnits;
7070

71-
GenerationResult( final File outputDirectory, final Map<QualifiedName, Class<?>> generatedClasses ) throws IOException {
71+
GenerationResult( final File outputDirectory, final Map<QualifiedName, Class<?>> generatedClasses,
72+
final Map<QualifiedName, String> sources ) throws IOException {
73+
this.sources = sources;
7274
combinedTypeSolver.add( new ReflectionTypeSolver() );
7375
combinedTypeSolver.add( new JavaParserTypeSolver( outputDirectory ) );
7476
combinedTypeSolver.add( new ClassLoaderTypeSolver( getClass().getClassLoader() ) );
@@ -374,4 +376,8 @@ void assertCopyright( final String className, final String expectedCopyright ) {
374376
Class<?> getGeneratedClass( final QualifiedName qualifiedName ) {
375377
return generatedClasses.get( qualifiedName );
376378
}
379+
380+
String getGeneratedSource( final QualifiedName qualifiedName ) {
381+
return sources.get( qualifiedName );
382+
}
377383
}

core/esmf-aspect-model-java-generator/src/test/java/org/eclipse/esmf/aspectmodel/java/StaticClassGenerationResult.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@
3636

3737
public class StaticClassGenerationResult extends GenerationResult {
3838

39-
public StaticClassGenerationResult( final File outputDirectory, final Map<QualifiedName, Class<?>> generatedClasses )
40-
throws IOException {
41-
super( outputDirectory, generatedClasses );
39+
public StaticClassGenerationResult( final File outputDirectory, final Map<QualifiedName, Class<?>> generatedClasses,
40+
final Map<QualifiedName, String> sources ) throws IOException {
41+
super( outputDirectory, generatedClasses, sources );
4242
}
4343

4444
/**

core/esmf-aspect-model-java-generator/src/test/java/org/eclipse/esmf/aspectmodel/java/TestContext.java

+11-6
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,25 @@ public class TestContext {
3737
public static ThrowingFunction<Collection<JavaGenerator>, GenerationResult, IOException> generateAspectCode() {
3838
return generators -> {
3939
final File tempDirectory = Files.createTempDirectory( "junit" ).toFile();
40-
final Map<QualifiedName, Class<?>> generatedClasses = generateJavaCode( tempDirectory, generators );
41-
return new GenerationResult( tempDirectory, generatedClasses );
40+
final GeneratedCodeAndClasses generatedCodeAndClasses = generateJavaCode( tempDirectory, generators );
41+
return new GenerationResult( tempDirectory, generatedCodeAndClasses.classes(), generatedCodeAndClasses.sources() );
4242
};
4343
}
4444

4545
public static ThrowingFunction<Collection<JavaGenerator>, StaticClassGenerationResult, IOException> generateStaticAspectCode() {
4646
return generators -> {
4747
final File tempDirectory = Files.createTempDirectory( "junit" ).toFile();
48-
final Map<QualifiedName, Class<?>> generatedClasses = generateJavaCode( tempDirectory, generators );
49-
return new StaticClassGenerationResult( tempDirectory, generatedClasses );
48+
final GeneratedCodeAndClasses generatedCodeAndClasses = generateJavaCode( tempDirectory, generators );
49+
return new StaticClassGenerationResult( tempDirectory, generatedCodeAndClasses.classes(), generatedCodeAndClasses.sources() );
5050
};
5151
}
5252

53-
private static Map<QualifiedName, Class<?>> generateJavaCode( final File tempDirectory, final Collection<JavaGenerator> generators )
53+
private record GeneratedCodeAndClasses(
54+
Map<QualifiedName, Class<?>> classes,
55+
Map<QualifiedName, String> sources
56+
) {}
57+
58+
private static GeneratedCodeAndClasses generateJavaCode( final File tempDirectory, final Collection<JavaGenerator> generators )
5459
throws IOException {
5560
final File subFolder = new File(
5661
tempDirectory.getAbsolutePath() + File.separator + generators.iterator().next().getConfig().packageName()
@@ -79,7 +84,7 @@ private static Map<QualifiedName, Class<?>> generateJavaCode( final File tempDir
7984
generator.getConfig().importTracker().getUsedStaticImports().stream() ) )
8085
.collect( Collectors.toList() );
8186

82-
return JavaCompiler.compile( loadOrder, sources, referencedClasses ).compilationUnits();
87+
return new GeneratedCodeAndClasses( JavaCompiler.compile( loadOrder, sources, referencedClasses ).compilationUnits(), sources );
8388
}
8489

8590
private static void writeFile( final String className, final byte[] content, final File targetDirectory ) {

0 commit comments

Comments
 (0)