@Test
  public void testValidateFunctionFile() throws Exception {
    Document document = DocumentHelper.createDocument();

    Element rootElement = document.addElement("definition");

    rootElement.addAttribute("default", "close");

    Element commandElement = rootElement.addElement("command");

    commandElement.addAttribute("name", "close");

    Element executeElement1 = commandElement.addElement("execute");

    executeElement1.addAttribute("argument1", "null");
    executeElement1.addAttribute("selenium", "selectWindow");

    Element executeElement2 = commandElement.addElement("execute");

    executeElement2.addAttribute("argument1", "relative=top");
    executeElement2.addAttribute("selenium", "selectFrame");

    PoshiRunnerValidation.validateFunctionFile(rootElement, "Close.function");

    Assert.assertEquals("validateFunctionFile is failing", "", getExceptionMessage());

    document = DocumentHelper.createDocument();

    rootElement = document.addElement("definition");

    rootElement.addAttribute("default", "open");

    commandElement = rootElement.addElement("command");

    commandElement.addAttribute("name", "open");

    executeElement1 = commandElement.addElement("execute");

    executeElement1.addAttribute("argument1", "//hello");
    executeElement1.addAttribute("selenium", "open");

    executeElement2 = commandElement.addElement("execute");

    executeElement2.addAttribute("macro", "MacroFileName#macroCommandName");

    PoshiRunnerValidation.validateFunctionFile(rootElement, "Open.function");

    Assert.assertEquals(
        "validateFunctionFile is failing", "Invalid or missing attribute", getExceptionMessage());
  }