private GuidedDecisionTableGeneratorListener parseAssets(
      final Path path, final ConversionResult result) {

    final List<DataListener> listeners = new ArrayList<DataListener>();
    final GuidedDecisionTableGeneratorListener listener =
        new GuidedDecisionTableGeneratorListener(result);
    listeners.add(listener);

    final ExcelParser parser = new ExcelParser(listeners);
    final InputStream stream = ioService.newInputStream(Paths.convert(path));

    try {
      parser.parseFile(stream);
    } finally {
      try {
        stream.close();
      } catch (IOException ioe) {
        result.addMessage(ioe.getMessage(), ConversionMessageType.ERROR);
      }
    }
    return listener;
  }
  @Test
  public void testPropertiesWithWhiteSpaceXLS() {

    final List<DataListener> listeners = new ArrayList<DataListener>();
    final DefaultRuleSheetListener listener = new DefaultRuleSheetListener();
    listeners.add(listener);

    final ExcelParser parser = new ExcelParser(listeners);
    final InputStream is = this.getClass().getResourceAsStream("PropertiesWithWhiteSpace.xls");

    parser.parseFile(is);

    listener.getProperties();

    final String rulesetName =
        listener.getProperties().getSingleProperty(DefaultRuleSheetListener.RULESET_TAG);
    assertNotNull(rulesetName);
    assertEquals("Properties", rulesetName);

    final List<Import> importList =
        RuleSheetParserUtil.getImportList(
            listener.getProperties().getProperty(DefaultRuleSheetListener.IMPORT_TAG));
    assertNotNull(importList);
    assertEquals(1, importList.size());
    assertEquals("java.util.List", importList.get(0).getClassName());

    final List<Global> variableList =
        RuleSheetParserUtil.getVariableList(
            listener.getProperties().getProperty(DefaultRuleSheetListener.VARIABLES_TAG));
    assertNotNull(variableList);
    assertEquals(1, variableList.size());
    assertEquals("java.util.List", variableList.get(0).getClassName());
    assertEquals("list", variableList.get(0).getIdentifier());

    final List<String> functions =
        listener.getProperties().getProperty(DefaultRuleSheetListener.FUNCTIONS_TAG);
    assertNotNull(functions);
    assertEquals(1, functions.size());
    assertEquals("A function", functions.get(0));

    final List<String> queries =
        listener.getProperties().getProperty(DefaultRuleSheetListener.QUERIES_TAG);
    assertNotNull(queries);
    assertEquals(1, queries.size());
    assertEquals("A query", queries.get(0));

    final List<String> declarations =
        listener.getProperties().getProperty(DefaultRuleSheetListener.DECLARES_TAG);
    assertNotNull(declarations);
    assertEquals(1, declarations.size());
    assertEquals("A declared type", declarations.get(0));

    final String sequentialFlag =
        listener.getProperties().getSingleProperty(DefaultRuleSheetListener.SEQUENTIAL_FLAG);
    assertNotNull(sequentialFlag);
    assertEquals("false", sequentialFlag);

    final String escapeQuotesFlag =
        listener.getProperties().getSingleProperty(DefaultRuleSheetListener.ESCAPE_QUOTES_FLAG);
    assertNotNull(escapeQuotesFlag);
    assertEquals("false", escapeQuotesFlag);
  }