void function ( ) { final Resource loc0 = input . getOppositeReferenceChangeWithAddAndDeleteOnMultivaluedSideLeft ( ) ; final Resource loc1 = input . getOppositeReferenceChangeWithAddAndDeleteOnMultivaluedSideRight ( ) ; batchMergeAndAssertEquality ( loc0 , loc1 , Direction . RIGHT_TO_LEFT ) ; }
tests a scenario in which an opposite one-to-many reference is changed , whereas there is one deletion and one addition on the multi-valued side of the opposite references . this correctly leads to three differences : 1 a change of the single-valued reference , 2 an addition of a value in the multi-valued opposite reference , and 3 a deletion of a value in the multi-valued opposite reference . however , all three of them end up in the same equivalence object , which caused the abstractmerger to merge only one of them ; that is , in this scenario , the deletion . thisultimately lead to unmerged differences cf. bug # 441172 . concode_field_sep IMerger.Registry mergerRegistry concode_elem_sep TwoWayMergeInputData input concode_field_sep void mergingMoveToDifferentContainmentFeatureR2L concode_elem_sep void mergingMoveToDifferentContainmentFeatureL2R concode_elem_sep void mergingOppositeReferenceChangeWithoutMatchingOriginalL2R concode_elem_sep void mergingMoveFromSingleValueReferenceToMultiValueReferenceR2L concode_elem_sep void mergingFeatureMapKeyRemoveAndRefMoveL2R concode_elem_sep void mergingFeatureMapKeyAddAndRefMoveR2L concode_elem_sep void mergingManyToManyReferenceChangesR2L concode_elem_sep void mergingMoveToNewContainerInADifferentOrderR2L concode_elem_sep void mergingDeleteFeatureMapNonContainmentsL2R concode_elem_sep void batchMergeAndAssertEquality concode_elem_sep void mergingMoveToFeatureMapL2R