### Question:
ValueWrapper extends AbstractReleaseCallbackContainer implements ResolutionContext { @Override public int getKeyPartIndex() { return keyPartIndex; } ValueWrapper(String key); Object get(); boolean isNull(); @Override String getKey(); @Override int getKeyPartIndex(); Hint getHint();  }### Answer:
@Test public void testGetKeyPartIndex() { final List<Integer> indexes = new ArrayList<>(); MustacheEngineBuilder .newBuilder() .omitServiceLoaderConfigurationExtensions() .addResolver(new AbstractResolver(1) { @Override public Object resolve(Object contextObject, String name, ResolutionContext context) { indexes.add(context.getKeyPartIndex()); return "OK"; } }).build().compileMustache("getkeypartindex", "{{my.key.foo}}") .render(null); assertEquals(3L, indexes.size()); assertEquals(Integer.valueOf(0), indexes.get(0)); assertEquals(Integer.valueOf(1), indexes.get(1)); assertEquals(Integer.valueOf(2), indexes.get(2)); }