@@ -288,6 +288,74 @@ public void testFixUpParentAndInterfaces_propertyNameSame_getterSetterSame_typeD
288
288
Assert .assertEquals (childModel .vars .get (1 ).getter , childValueProperty2 .getter );
289
289
Assert .assertEquals (childModel .vars .get (1 ).setter , childValueProperty2 .setter );
290
290
}
291
+
292
+ /**
293
+ * Issue #1066 - testing case when the conflicting property is actually not the first one but the
294
+ * second
295
+ */
296
+ @ Test
297
+ public void testFixUpParentAndInterfaces_2ndproperty_propertyNameSame_getterSetterSame_typeDifferent () {
298
+ AbstractJavaCodegen codegen = new P_AbstractJavaCodegen ();
299
+
300
+ CodegenModel parentModel = new CodegenModel ();
301
+ parentModel .name = "parent_type" ;
302
+ CodegenModel childModel = new CodegenModel ();
303
+ childModel .name = "child_type" ;
304
+ childModel .parentModel = parentModel ;
305
+ parentModel .children = new ArrayList <>();
306
+
307
+ CodegenProperty parentValueProperty1 = new CodegenProperty ();
308
+ parentValueProperty1 .name = "value" ;
309
+ parentValueProperty1 .baseName = "value" ;
310
+ parentValueProperty1 .getter = "getValue" ;
311
+ parentValueProperty1 .setter = "setValue" ;
312
+ parentValueProperty1 .datatype = "value_type" ;
313
+ CodegenProperty parentValueProperty2 = new CodegenProperty ();
314
+ parentValueProperty2 .name = "other_value" ;
315
+ parentValueProperty2 .baseName = "other_value" ;
316
+ parentValueProperty2 .getter = "getOtherValue" ;
317
+ parentValueProperty2 .setter = "setOtherValue" ;
318
+ parentValueProperty2 .datatype = "other_type" ;
319
+ parentModel .vars = new ArrayList <>();
320
+ parentModel .vars .add (parentValueProperty1 );
321
+ parentModel .vars .add (parentValueProperty2 );
322
+
323
+ CodegenProperty childValueProperty1 = new CodegenProperty ();
324
+ childValueProperty1 .name = "third_value" ;
325
+ childValueProperty1 .baseName = "third_value" ;
326
+ childValueProperty1 .nameInCamelCase = "ThirdValue" ;
327
+ childValueProperty1 .getter = "getThirdValue" ;
328
+ childValueProperty1 .setter = "setThirdValue" ;
329
+ childValueProperty1 .datatype = "other_type" ;
330
+ CodegenProperty childValueProperty2 = new CodegenProperty ();
331
+ childValueProperty2 .name = "value" ; // same as parent "value"
332
+ childValueProperty2 .baseName = "value" ;
333
+ childValueProperty2 .getter = "getValue" ; // same as parent "getValue"
334
+ childValueProperty2 .setter = "setValue" ; // same as parent "setValue"
335
+ childValueProperty2 .datatype = "different_type" ; // different to parent "value_type"
336
+
337
+ childModel .vars = new ArrayList <>();
338
+ childModel .vars .add (childValueProperty1 );
339
+ childModel .vars .add (childValueProperty2 );
340
+
341
+ Map <String , CodegenModel > allModels = new HashMap <>();
342
+ allModels .put (parentModel .name , parentModel );
343
+ allModels .put (childModel .name , childModel );
344
+
345
+ codegen .fixUpParentAndInterfaces (childModel , Collections .EMPTY_MAP );
346
+ Assert .assertEquals (childModel .vars .get (1 ).baseName , "value" );
347
+ Assert .assertEquals (childModel .vars .get (1 ).name , "childTypeValue" );
348
+ Assert .assertEquals (childModel .vars .get (1 ).nameInCamelCase , "ChildTypeValue" );
349
+ Assert .assertEquals (childModel .vars .get (1 ).getter , "getChildTypeValue" );
350
+ Assert .assertEquals (childModel .vars .get (1 ).setter , "setChildTypeValue" );
351
+
352
+ // unchanged
353
+ Assert .assertEquals (childModel .vars .get (0 ).baseName , childValueProperty1 .baseName );
354
+ Assert .assertEquals (childModel .vars .get (0 ).name , childValueProperty1 .name );
355
+ Assert .assertEquals (childModel .vars .get (0 ).nameInCamelCase , childValueProperty1 .nameInCamelCase );
356
+ Assert .assertEquals (childModel .vars .get (0 ).getter , childValueProperty1 .getter );
357
+ Assert .assertEquals (childModel .vars .get (0 ).setter , childValueProperty1 .setter );
358
+ }
291
359
292
360
public static class P_AbstractJavaCodegen extends AbstractJavaCodegen {
293
361
@ Override
0 commit comments