### Question:
PhoneUtils { public static Optional<String> extractPhoneNumber(String message){ if(message == null){ return Optional.empty(); } String number = REMOVE_NON_NUMERIC_CHARS.matcher(message).replaceAll(""); try { return Optional.ofNullable(toInternationalFormat(number)); } catch (NumberParseException e) { } return Optional.empty(); }  static boolean isValidNumber(String number); static String toInternationalFormat(String number); static Optional<String> extractPhoneNumber(String message);  }### Answer:
@Parameters({ "a +421904938419 a | 421904938419 ", " +3906123456 | 3906123456 ", "+447756738686 | 447756738686 ", "My number is +4407756738685 | 447756738685 ", }) @Test public void testExtractPhoneNumber_shouldBeExtracted(String message, String expectedNumber){ Optional<String> actualNumber = PhoneUtils.extractPhoneNumber(message); assertThat(actualNumber.get()).isEqualTo(expectedNumber); }