### Question:
I18nDataExtractor implements DataExtractor { @Override public String extractString(Map<XmlNodeName, String> trackValues, XmlNodeName key) { String possiblyNonEnglishValue = trackValues.get(key); return englishValueFor(key, possiblyNonEnglishValue); }  @Override RatingTo extractRating(Map<XmlNodeName, String> trackValues,
			XmlNodeName key); @Override int extractInt(Map<XmlNodeName, String> trackValues, XmlNodeName key); @Override Boolean extractBoolean(Map<XmlNodeName, String> trackValues,
			XmlNodeName key); @Override String extractString(Map<XmlNodeName, String> trackValues,
			XmlNodeName key); @Override Date extractDate(Map<XmlNodeName, String> trackValues,
			XmlNodeName key); void setEnglishValuesProvider(
			EnglishValuesProvider englishValuesProvider);  }### Answer:
@Test public void shouldExtractStringValue() { trackValues.put(XmlNodeName.COMPOSER, "Dio"); assertEquals("Dio", dataExtractor.extractString(trackValues, XmlNodeName.COMPOSER)); }
@Test public void shouldExtractNullStringValueWhenKeyNotPresent() { assertNull(dataExtractor.extractString(trackValues, XmlNodeName.COMPOSER)); }