### Question:
AbstractGroupsPayload { @Nullable protected String convertToStringValue(final Payload payload, final String payloadMapKey) throws IllegalArgumentException { return extractValueFromMapPayload(payload, payloadMapKey, STRING_CONVERTER).orElse(null); }   static final Function<Object, String> STRING_CONVERTER; }### Answer:
@Test public void testConvertToStringValue() { assertThat(subclass.convertToStringValue(makeStubMapPayload(MAP_KEY, null), MAP_KEY)).isNull(); assertThatThrownBy(() -> subclass.convertToStringValue(makeStubMapPayload(MAP_KEY, 42), MAP_KEY)) .isInstanceOf(ClassCastException.class) .hasMessageContaining("42"); assertThat(subclass.convertToStringValue(makeStubMapPayload(MAP_KEY, "footest"), MAP_KEY)).isEqualTo("footest"); assertThatThrownBy(() -> subclass.convertToStringValue(makeStubMapPayload("notexist", "footest"), MAP_KEY)) .isInstanceOf(IllegalArgumentException.class) .hasMessageContaining(MAP_KEY) .hasMessageContaining("notexist"); }