1+ package com .kobylynskyi .graphql .codegen .model ;
2+
3+ import static java .util .Arrays .asList ;
4+ import static java .util .Collections .singletonMap ;
5+ import static org .junit .jupiter .api .Assertions .assertEquals ;
6+ import static org .junit .jupiter .api .Assertions .assertFalse ;
7+ import static org .junit .jupiter .api .Assertions .assertTrue ;
8+
9+ import java .util .AbstractMap ;
10+ import java .util .Arrays ;
11+ import java .util .HashMap ;
12+ import java .util .HashSet ;
13+ import java .util .Map ;
14+ import java .util .stream .Collectors ;
15+
16+ import org .junit .jupiter .api .Test ;
17+
18+ @ SuppressWarnings ("unchecked" )
19+ class MappingConfigTest {
20+
21+ @ Test
22+ public void combineDefaultWithNull () {
23+ MappingConfig mappingConfig = buildEmptyMappingConfig ();
24+ mappingConfig .combine (null );
25+
26+ assertEquals (buildEmptyMappingConfig (), mappingConfig );
27+ }
28+
29+ @ Test
30+ void combineDefaultWithDefault () {
31+ MappingConfig mappingConfig = buildEmptyMappingConfig ();
32+ mappingConfig .combine (buildEmptyMappingConfig ());
33+
34+ assertEquals (buildEmptyMappingConfig (), mappingConfig );
35+ }
36+
37+ @ Test
38+ void combineDefaultWithCustom () {
39+ MappingConfig mappingConfig = buildEmptyMappingConfig ();
40+ mappingConfig .combine (buildMappingConfig ());
41+
42+ assertEquals (singletonMap ("1" , "2" ), mappingConfig .getCustomTypesMapping ());
43+ assertEquals (singletonMap ("3" , "4" ), mappingConfig .getCustomAnnotationsMapping ());
44+ assertEquals (new HashSet <>(asList ("5" , "6" )), mappingConfig .getModelAnnotations ());
45+ assertEquals ("ApiPackageName" , mappingConfig .getApiPackageName ());
46+ assertTrue (mappingConfig .getGenerateApis ());
47+ assertTrue (mappingConfig .getGenerateEqualsAndHashCode ());
48+ assertTrue (mappingConfig .getGenerateToString ());
49+ assertEquals ("ModelNamePrefix" , mappingConfig .getModelNamePrefix ());
50+ assertEquals ("ModelNameSuffix" , mappingConfig .getModelNameSuffix ());
51+ assertEquals ("ModelPackageName" , mappingConfig .getModelPackageName ());
52+ assertEquals ("ModelValidationAnnotation" , mappingConfig .getModelValidationAnnotation ());
53+ assertEquals ("PackageName" , mappingConfig .getPackageName ());
54+ }
55+
56+ @ Test
57+ void combineCustomWithDefault () {
58+ MappingConfig mappingConfig = buildMappingConfig ();
59+ mappingConfig .combine (buildEmptyMappingConfig ());
60+
61+ assertEquals (singletonMap ("1" , "2" ), mappingConfig .getCustomTypesMapping ());
62+ assertEquals (singletonMap ("3" , "4" ), mappingConfig .getCustomAnnotationsMapping ());
63+ assertEquals (new HashSet <>(asList ("5" , "6" )), mappingConfig .getModelAnnotations ());
64+ assertEquals ("ApiPackageName" , mappingConfig .getApiPackageName ());
65+ assertTrue (mappingConfig .getGenerateApis ());
66+ assertTrue (mappingConfig .getGenerateEqualsAndHashCode ());
67+ assertTrue (mappingConfig .getGenerateToString ());
68+ assertEquals ("ModelNamePrefix" , mappingConfig .getModelNamePrefix ());
69+ assertEquals ("ModelNameSuffix" , mappingConfig .getModelNameSuffix ());
70+ assertEquals ("ModelPackageName" , mappingConfig .getModelPackageName ());
71+ assertEquals ("ModelValidationAnnotation" , mappingConfig .getModelValidationAnnotation ());
72+ assertEquals ("PackageName" , mappingConfig .getPackageName ());
73+ }
74+
75+ @ Test
76+ void combineCustomWithCustom () {
77+ MappingConfig mappingConfig = buildMappingConfig ();
78+ mappingConfig .combine (buildMappingConfig2 ());
79+
80+ assertEquals (hashMap (new HashMap .SimpleEntry <>("1" , "2" ), new HashMap .SimpleEntry <>("11" , "22" )),
81+ mappingConfig .getCustomTypesMapping ());
82+ assertEquals (hashMap (new HashMap .SimpleEntry <>("3" , "4" ), new HashMap .SimpleEntry <>("33" , "44" )),
83+ mappingConfig .getCustomAnnotationsMapping ());
84+ assertEquals (new HashSet <>(asList ("55" , "5" , "6" , "66" )), mappingConfig .getModelAnnotations ());
85+ assertEquals ("ApiPackageName2" , mappingConfig .getApiPackageName ());
86+ assertFalse (mappingConfig .getGenerateApis ());
87+ assertFalse (mappingConfig .getGenerateEqualsAndHashCode ());
88+ assertFalse (mappingConfig .getGenerateToString ());
89+ assertEquals ("ModelNamePrefix2" , mappingConfig .getModelNamePrefix ());
90+ assertEquals ("ModelNameSuffix2" , mappingConfig .getModelNameSuffix ());
91+ assertEquals ("ModelPackageName2" , mappingConfig .getModelPackageName ());
92+ assertEquals ("ModelValidationAnnotation2" , mappingConfig .getModelValidationAnnotation ());
93+ assertEquals ("PackageName2" , mappingConfig .getPackageName ());
94+ }
95+
96+ private static Map <String , String > hashMap (AbstractMap .SimpleEntry <String , String >... entries ) {
97+ return Arrays .stream (entries ).collect (
98+ Collectors .toMap (AbstractMap .SimpleEntry ::getKey , AbstractMap .SimpleEntry ::getValue , (a , b ) -> b ));
99+ }
100+
101+ private static MappingConfig buildMappingConfig () {
102+ MappingConfig config = new MappingConfig ();
103+ config .setCustomTypesMapping (new HashMap <>(singletonMap ("1" , "2" )));
104+ config .setCustomAnnotationsMapping (new HashMap <>(singletonMap ("3" , "4" )));
105+ config .setModelAnnotations (new HashSet <>(asList ("5" , "6" )));
106+ config .setApiPackageName ("ApiPackageName" );
107+ config .setGenerateApis (true );
108+ config .setGenerateEqualsAndHashCode (true );
109+ config .setGenerateToString (true );
110+ config .setModelNamePrefix ("ModelNamePrefix" );
111+ config .setModelNameSuffix ("ModelNameSuffix" );
112+ config .setModelPackageName ("ModelPackageName" );
113+ config .setModelValidationAnnotation ("ModelValidationAnnotation" );
114+ config .setPackageName ("PackageName" );
115+ return config ;
116+ }
117+
118+ private static MappingConfig buildMappingConfig2 () {
119+ MappingConfig config = new MappingConfig ();
120+ config .setCustomTypesMapping (new HashMap <>(singletonMap ("11" , "22" )));
121+ config .setCustomAnnotationsMapping (new HashMap <>(singletonMap ("33" , "44" )));
122+ config .setModelAnnotations (new HashSet <>(asList ("55" , "66" )));
123+ config .setApiPackageName ("ApiPackageName2" );
124+ config .setGenerateApis (false );
125+ config .setGenerateEqualsAndHashCode (false );
126+ config .setGenerateToString (false );
127+ config .setModelNamePrefix ("ModelNamePrefix2" );
128+ config .setModelNameSuffix ("ModelNameSuffix2" );
129+ config .setModelPackageName ("ModelPackageName2" );
130+ config .setModelValidationAnnotation ("ModelValidationAnnotation2" );
131+ config .setPackageName ("PackageName2" );
132+ return config ;
133+ }
134+
135+ private static MappingConfig buildEmptyMappingConfig () {
136+ MappingConfig mappingConfig = new MappingConfig ();
137+ mappingConfig .setModelAnnotations (null );
138+ mappingConfig .setCustomTypesMapping (null );
139+ mappingConfig .setCustomAnnotationsMapping (null );
140+ return mappingConfig ;
141+ }
142+
143+ }
0 commit comments