@Test
	public void testMemRefChangeFallthroughPickMy() throws Exception {
		mtf.initialize("NotepadMergeListingTest", new OriginalProgramModifierListener() {

			@Override
			public void modifyOriginal(ProgramDB program) {
				ReferenceManager refMgr = program.getReferenceManager();
				refMgr.addMemoryReference(addr(program, "0x01002f49"),
					addr(program, "0x01002f55"), RefType.READ_WRITE, SourceType.USER_DEFINED,
					-1);
				
				assertNotNull(refMgr.getReference(addr(program, "0x01002f49"),
					addr(program, "0x01002f55"), -1));
			}

			@Override
			public void modifyLatest(ProgramDB program) {
				ReferenceManager refMgr = program.getReferenceManager();
				Reference ref = refMgr.getReference(addr(program, "0x01002f49"),
					addr(program, "0x01002f55"), -1);
//				refMgr.setPrimary(ref, false);
				ref = refMgr.updateRefType(ref, RefType.FALL_THROUGH);
				assertEquals(RefType.FALL_THROUGH, ref.getReferenceType());
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				ReferenceManager refMgr = program.getReferenceManager();
				Reference ref = refMgr.getReference(addr(program, "0x01002f49"),
					addr(program, "0x01002f55"), -1);
//				refMgr.setPrimary(ref, false);
				ref = refMgr.updateRefType(ref, RefType.WRITE);
				assertEquals(RefType.WRITE, ref.getReferenceType());
			}
		});

		executeMerge(ASK_USER);
		chooseRadioButton(MY_BUTTON);
		waitForMergeCompletion();

		ReferenceManager refMgr = resultProgram.getReferenceManager();
		Reference ref = refMgr.getReference(addr("0x01002f49"), addr("0x01002f55"), -1);
		assertNotNull(ref);
		assertEquals(RefType.WRITE, ref.getReferenceType());
		assertTrue(ref.isPrimary());
	}
Test the merge of the versioned program's listing.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/RefMergerMemTest.java