@Test
  public void testDatasetPathMatchSuccess() {
    String matchPattern =
        "prod/sref.([0-9]{4})([0-9]{2})([0-9]{2})/([0-9]{2})/pgrb_biasc/sref_([^.]*)\\.t\\4z\\.pgrb([0-9]{3})\\.(.*)\\.grib2$";
    String substitutionPattern = "$1-$2-$3T$4";
    //    String substitutionPattern = "$1-$2-$3T$4 Grid $6 member $5-$7";
    String duration = "96 hours";

    String dsName =
        "/data/nccf/com/sref/prod/sref.20090603/03/pgrb_biasc/sref_eta.t03z.pgrb212.n2.grib2";

    RegExpAndDurationTimeCoverageEnhancer timeCoverageEnhancer =
        RegExpAndDurationTimeCoverageEnhancer.getInstanceToMatchOnDatasetPath(
            matchPattern, substitutionPattern, duration);
    assertTrue(timeCoverageEnhancer != null);

    InvDatasetImpl ds = new InvDatasetImpl(null, dsName);
    CrawlableDataset crDs = new MockCrawlableDataset(dsName, false);

    assertTrue("Failed to add metadata.", timeCoverageEnhancer.addMetadata(ds, crDs));

    // This dataset hasn't been finalized so ds.getTimeCoverage() doesn't work.
    String startDateString = ds.getLocalMetadata().getTimeCoverage().getStart().getText();
    String expectedStartDateString = "2009-06-03T03";
    assertTrue(
        "TimeCoverage start date ["
            + startDateString
            + "] not as expected ["
            + expectedStartDateString
            + "].",
        startDateString.equals(expectedStartDateString));
  }
  @Test
  public void testDatasetNameMatchFail() {
    String matchPattern =
        "NDFD_CONUS_5km_([0-9]{4})([0-9]{2})([0-9]{2})_([0-9]{2})([0-9]{2}).grib2";
    String substitutionPattern = "$1-$2-$3T$4:$5:00";
    String duration = "96 hours";

    String dsName = "NDFD_CONUS_5km_200600325_1200.grib2";

    RegExpAndDurationTimeCoverageEnhancer timeCoverageEnhancer =
        RegExpAndDurationTimeCoverageEnhancer.getInstanceToMatchOnDatasetName(
            matchPattern, substitutionPattern, duration);
    assertTrue(timeCoverageEnhancer != null);

    InvDatasetImpl ds = new InvDatasetImpl(null, dsName);
    CrawlableDataset crDs = new MockCrawlableDataset(dsName, false);

    assertTrue("Unexpected success adding metadata.", !timeCoverageEnhancer.addMetadata(ds, crDs));
  }