@Test
	public void testGenerateChildren_MultipleReferences_SameSource_DifferentRemoteFunction()
			throws Exception {

		//
		// This is testing when more than 1 reference exists at an address to different functions.
		// We have code that will ensure that call references are preferred over other reference 
		// types.  In this scenario, since the remote functions are different, there should be 2
		// nodes created in the tree, 1 for each reference.
		//

		String toAddress = "0x1000";
		builder.createEmptyFunction("Function_1000", toAddress, 1, new VoidDataType());
		builder.addBytesFallthrough(firstCalledFunctionAddress);
		builder.disassemble(firstCalledFunctionAddress, 2);

		String secondToAddress = "0x2000";

		// create non-call read reference
		builder.createMemoryReference(firstCalledFunctionAddress, toAddress, RefType.READ,
			SourceType.USER_DEFINED);

		// create call reference at a different op index so both references can co-exist
		builder.tx(() -> {
			ReferenceManager refManager = program.getReferenceManager();
			Reference ref =
				refManager.addMemoryReference(addr(firstCalledFunctionAddress),
					addr(secondToAddress), RefType.UNCONDITIONAL_CALL, SourceType.USER_DEFINED, 1);
			return ref;
		});

		List<GTreeNode> children = node1.generateChildren(TaskMonitor.DUMMY);
		assertEquals(2, children.size());
	}
This test class is covering the various types of 'calls' a function can make, such as a
direct call instruction, or through a user-defined reference.   External calls are also a bit
tricky.   This test was created by following the code paths in {@link OutgoingCallNode}
and making sure that each path was followed.
Ghidra/Features/Base/src/test.slow/java/ghidra/app/plugin/core/calltree/OutgoingCallNodeTest.java