### Question:
MmdReader implements Reader { @Override public void open(final DataFile dataFile, File archiveRoot) throws IOException { this.dataFile = dataFile; final String fileLocation; if (archiveRoot == null || dataFile.getPath().startsWith(File.separator)) { fileLocation = dataFile.getPath(); } else { fileLocation = archiveRoot.getPath() + File.separator + dataFile.getPath(); } validateFileLocation(fileLocation); ncFile = NetcdfFile.open(fileLocation); matchupIds = ncFile.findVariable(NetcdfFile.makeValidPathName(Constants.VARIABLE_NAME_MATCHUP_ID)); if (matchupIds == null) { matchupIds = ncFile.findVariable(NetcdfFile.makeValidPathName(Constants.VARIABLE_NAME_ARC2_MATCHUP_ID)); } final String property = getProperty(Configuration.KEY_MMS_REINGESTION_LOCATED, "false"); if ("yes".equals(property)) { delegateReader = new MmdObservationReader(dataFile, ncFile, sensorName); } else { delegateReader = new MmdArcReader(dataFile, ncFile, sensorName); } } MmdReader(String sensorName); @Override void open(final DataFile dataFile, File archiveRoot); @Override int getNumRecords(); @Override Observation readObservation(final int recordNo); @Override List<SamplingPoint> readSamplingPoints(); @Override Item getColumn(String role); @Override Item[] getColumns(); @Override DataFile getDatafile(); @Override GeoCoding getGeoCoding(int recordNo); @Override double getDTime(int recordNo, int scanLine); @Override long getTime(int recordNo, int scanLine); @Override final Array read(String role, ExtractDefinition extractDefinition); @Override void close(); @Override int getLineSkip(); @Override InsituSource getInsituSource(); @Override String getDatasetName(); @Override Product getProduct(); @Override int getScanLineCount(); @Override int getElementCount(); int getMatchupId(final int recordNo); void setConfiguration(Configuration configuration);  }### Answer:
@Test(expected = IOException.class) public void testFailingInit() throws Exception { final DataFile dataFile = new DataFile(); dataFile.setPath("pom.xml"); mmdReader.open(dataFile, null); }