### Question:
SpotViewMetadata extends XmlMetadata { @Override public String getProductName() { if (rootElement == null) { return null; } String name = null; MetadataElement currentElement; if ((currentElement = rootElement.getElement(SpotConstants.TAG_PRODUCTION)) != null) { name = currentElement.getAttributeString(SpotConstants.TAG_DATASET_NAME); rootElement.setDescription(name); } else { logger.warning(String.format(MISSING_ELEMENT_WARNING, SpotConstants.TAG_DATASET_NAME)); } return name; } SpotViewMetadata(String name); @Override String getFileName(); @Override String getProductName(); @Override String getProductDescription(); @Override int getNumBands(); @Override String getFormatName(); @Override String getMetadataProfile(); @Override int getRasterWidth(); @Override int getRasterHeight(); @Override String[] getRasterFileNames(); @Override ProductData.UTC getProductStartTime(); @Override ProductData.UTC getProductEndTime(); @Override ProductData.UTC getCenterTime(); String[] getBandNames(); ByteOrder getRasterJavaByteOrder(); int getRasterDataType(); int getRasterPixelSize(); float getRasterGeoRefX(); float getRasterGeoRefY(); float getRasterGeoRefSizeX(); float getRasterGeoRefSizeY(); @SuppressWarnings("SameReturnValue") String getGeolayerFileName(); int getGeolayerNumBands(); int getGeolayerWidth(); int getGeolayerHeight(); ByteOrder getGeolayerJavaByteOrder(); int getGeolayerPixelSize(); int getGeolayerDataType(); String getProjectionCode();  }### Answer:
@Test public void testGetProductName() throws Exception { assertEquals("SP04_HRI1_X__1O_20050605T090007_20050605T090016_DLR_70_PREU.BIL.ZIP", metadata.getProductName()); }