@Test
    public void testDataTypeAdded() throws Exception {
		// LATEST: rename /MISC to /Other_MISC
		// MY: add new data type to /MISC

		mtf.initialize("notepad", new ProgramModifierListener() {
			
			@Override
			public void modifyLatest(ProgramDB program) {
				DataTypeManager dtm = program.getDataTypeManager();
				Category miscCat = dtm.getCategory(new CategoryPath("/MISC"));
				try {
					miscCat.setName("Other_MISC");
				}
				catch (Exception e) {
					Assert.fail("Got exception: " + e);
				}
			}

			@Override
			public void modifyPrivate(ProgramDB program) {
				DataTypeManager dtm = program.getDataTypeManager();
				// move MISC to /Category1/Category2/Category3
				Category miscCat = dtm.getCategory(new CategoryPath("/MISC"));
				Structure s1 = new StructureDataType(miscCat.getCategoryPath(), "struct_one", 0);
				s1.add(new ByteDataType());
				s1.add(new FloatDataType());
				try {
					miscCat.addDataType(s1, DataTypeConflictHandler.DEFAULT_HANDLER);
				}
				catch (Exception e) {
					Assert.fail("Got exception: " + e);
				}
			}
		});
		executeMerge(-1);
		DataTypeManager dtm = resultProgram.getDataTypeManager();
		assertTrue(dtm.containsCategory(new CategoryPath("/MISC")));
		assertTrue(dtm.containsCategory(new CategoryPath("/Other_MISC")));
		assertNotNull(dtm.getDataType(new CategoryPath("/MISC"), "struct_one"));
	}
Tests for the merge data type manager.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/merge/datatypes/CategoryMerge1Test.java