### Question:
SpotDimapMetadata extends XmlMetadata { @Override public String getProductName() { if (rootElement == null) { return null; } String name = null; MetadataElement currentElement; if ((currentElement = rootElement.getElement(SpotConstants.TAG_DATASET_SOURCES)) != null && (currentElement = currentElement.getElement(SpotConstants.TAG_SOURCE_INFORMATION)) != null) { name = currentElement.getAttributeString(SpotConstants.TAG_SOURCE_ID); rootElement.setDescription(name); } else { logger.warning(String.format(MISSING_ELEMENT_WARNING, SpotConstants.TAG_DATASET_NAME)); } return name; } SpotDimapMetadata(String name); @Override String getFileName(); @Override String getProductName(); String getProductDescription(); @Override String getFormatName(); @Override String getMetadataProfile(); @Override int getRasterWidth(); @Override int getRasterHeight(); @Override String[] getRasterFileNames(); @Override ProductData.UTC getProductStartTime(); @Override ProductData.UTC getProductEndTime(); String[] getBandNames(); String[] getBandUnits(); @Override int getNumBands(); int getNoDataValue(); Color getNoDataColor(); int getSaturatedPixelValue(); Color getSaturatedColor(); float getWavelength(int bandIndex); float getBandwidth(int bandIndex); ProductData.UTC getCenterTime(); TiePoint[] getTiePoints(); InsertionPoint getInsertPoint(); double getScalingFactor(int bandIndex); double getScalingOffset(int bandIndex); float getGain(int bandIndex); String getCRSCode(); double getOrientation(); Point2D.Float[] getCornerCoordinates(); HashMap<String, Double> getStatistics(int bandIndex); int getPixelDataType();  }### Answer:
@Test public void testGetProductName() throws Exception { assertEquals("40602830705041018442I", metadata.getProductName()); }