@Test
	public void testAddStringProperty() throws Exception {
		mtf.initialize("DiffTestPgm1", new ProgramModifierListener() {

			@Override
			public void modifyLatest(ProgramDB program) {
				PropertyMapManager pmm = program.getUsrPropertyManager();
				try {
					StringPropertyMap spm = pmm.createStringPropertyMap("testString");
					spm.add(addr(program, "0x1002400"), "Eleven");
					spm.add(addr(program, "0x1002466"), "Six");
					spm.add(addr(program, "0x1002472"), "Twelve");
					spm.add(addr(program, "0x1002488"), "EightyEight");
					spm.add(addr(program, "0x100248a"), "Fourteen");
					spm.add(addr(program, "0x100248c"), "Fifteen");
				}
				catch (DuplicateNameException e) {
					e.printStackTrace();
				}
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				PropertyMapManager pmm = program.getUsrPropertyManager();
				try {
					StringPropertyMap spm = pmm.createStringPropertyMap("testString");
					spm.add(addr(program, "0x1002481"), "TwentyOne");
					spm.add(addr(program, "0x1002466"), "SixtySix");
					spm.add(addr(program, "0x1002488"), "EightyEight");
					spm.add(addr(program, "0x100248a"), "TwentyThree");
					spm.add(addr(program, "0x100248c"), "TwentyFour");
					spm.add(addr(program, "0x1002490"), "TwentyFive");
				}
				catch (DuplicateNameException e) {
					e.printStackTrace();
				}
			}
		});

		executeMerge(ASK_USER);
		chooseUserDefined(addr("0x1002466"), "testString", KEEP_ORIGINAL);
		chooseUserDefined(addr("0x100248a"), "testString", KEEP_LATEST);
		chooseUserDefined(addr("0x100248c"), "testString", KEEP_MY);
		waitForMergeCompletion();

		PropertyMapManager pmm = resultProgram.getUsrPropertyManager();
		StringPropertyMap spm = pmm.getStringPropertyMap("testString");
		Address address = resultProgram.getMinAddress();

		address = spm.getNextPropertyAddress(address);
		assertEquals(addr("0x1002400"), address);
		assertEquals("Eleven", spm.getString(address));

		address = spm.getNextPropertyAddress(address);
		assertEquals(addr("0x1002472"), address);
		assertEquals("Twelve", spm.getString(address));

		address = spm.getNextPropertyAddress(address);
		assertEquals(addr("0x1002481"), address);
		assertEquals("TwentyOne", spm.getString(address));

		address = spm.getNextPropertyAddress(address);
		assertEquals(addr("0x1002488"), address);
		assertEquals("EightyEight", spm.getString(address));

		address = spm.getNextPropertyAddress(address);
		assertEquals(addr("0x100248a"), address);
		assertEquals("Fourteen", spm.getString(address));

		address = spm.getNextPropertyAddress(address);
		assertEquals(addr("0x100248c"), address);
		assertEquals("TwentyFour", spm.getString(address));

		address = spm.getNextPropertyAddress(address);
		assertEquals(addr("0x1002490"), address);
		assertEquals("TwentyFive", spm.getString(address));

		address = spm.getNextPropertyAddress(address);
		assertNull(address);
	}
Test the merge of the versioned program's listing.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/listing/UserDefinedPropertyMergeManagerTest.java