@Test
public void testKeyForTarget() {

	DataObject target = mock(DataObject.class);
	when(target.readNestedProperty("a")).thenReturn("a1");
	when(target.readNestedProperty("b")).thenReturn(5);
	when(target.readNestedProperty("c")).thenReturn(6);
	Object key = mapper.keyForTarget(target);
	assertTrue(key instanceof Map);
	@SuppressWarnings({ "unchecked", "rawtypes" })
	Map<String, Object> keyMap = (Map) key;
	assertEquals(2, keyMap.size());
	assertEquals("a1", keyMap.get("a"));
	assertEquals(5, keyMap.get("b"));
}