@Test
	public void testImageBaseChange() throws Exception {
		int id = program.startTransaction("Test");
		Address start = addr(0x10);
		Address end = addr(0x20);

		mem.createInitializedBlock("first", addr(0), 0x100, (byte) 0, TaskMonitor.DUMMY, false);

		ProgramContext programContext = program.getProgramContext();

		Register register = programContext.getRegisters().get(0);
		BigInteger value = BigInteger.valueOf(0x11);

		programContext.setValue(register, addr(0x10), addr(0x20), value);
		assertNull(programContext.getValue(register, start.subtract(1), true));
		assertEquals(value, programContext.getValue(register, start, true));
		assertEquals(value, programContext.getValue(register, end, true));
		assertNull(programContext.getValue(register, end.add(1), true));

		long imageOffset = 0x5;
		Address imageBase = addr(imageOffset);
		program.setImageBase(imageBase, true);

		assertNull(programContext.getValue(register, start.add(imageOffset - 1), true));
		assertEquals(value, programContext.getValue(register, start.add(imageOffset), true));
		assertEquals(value, programContext.getValue(register, end.add(imageOffset), true));
		assertNull(programContext.getValue(register, end.add(imageOffset + 1), true));

		program.endTransaction(id, false);
	}
quick and dirty test of the ProgramContextImpl just to see
if the values are being set for specified address range.
The ProgramContextPlugin will be a more complete test
program, with a gui interface to specify the values and
select/highlight an address range.
Ghidra/Features/Base/src/test.slow/java/ghidra/program/util/ProgramContextTest.java