### Question:
I18nDataExtractor implements DataExtractor { @Override public int extractInt(Map<XmlNodeName, String> trackValues, XmlNodeName key) { if (trackValues.get(key) == null) { return 0; } else { return new Integer(trackValues.get(key)); } }  @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 shouldExtractIntValue() { trackValues.put(XmlNodeName.COMPOSER, "5"); assertEquals(5, dataExtractor.extractInt(trackValues, XmlNodeName.COMPOSER)); }
@Test public void shouldExtractZeroForNoKey() { assertEquals(0, dataExtractor.extractInt(trackValues, XmlNodeName.COMPOSER)); }