### Question:
AbstractGroupsPayload { protected Double convertToDoubleValue(final Payload payload, final String payloadMapKey) throws IllegalArgumentException { return extractNonNullValueFromMapPayload(payload, payloadMapKey, DOUBLE_CONVERTER); }   static final Function<Object, String> STRING_CONVERTER; }### Answer:
@Test public void testConvertToDoubleValue() { assertThatThrownBy(() -> subclass.convertToDoubleValue(makeStubMapPayload(MAP_KEY, null), MAP_KEY)) .isInstanceOf(NullPointerException.class) .hasMessageContaining(MAP_KEY); assertThatThrownBy(() -> subclass.convertToDoubleValue(makeStubMapPayload(MAP_KEY, "foo"), MAP_KEY)) .isInstanceOf(ClassCastException.class) .hasMessageContaining("foo"); assertThat(subclass.convertToDoubleValue(makeStubMapPayload(MAP_KEY, 42), MAP_KEY)).isEqualTo(42.0); assertThatThrownBy(() -> subclass.convertToDoubleValue(makeStubMapPayload("notexist", "footest"), MAP_KEY)) .isInstanceOf(IllegalArgumentException.class) .hasMessageContaining(MAP_KEY) .hasMessageContaining("notexist"); }