@Test public void testValidateFunctionContext() { String filePath = getFilePath("ValidateFunctionContext.macro"); Element element = PoshiRunnerContext.getMacroCommandElement( "ValidateFunctionContext#validateFunctionContextPass"); List<Element> functionElements = element.elements("execute"); for (Element functionElement : functionElements) { PoshiRunnerValidation.validateFunctionContext(functionElement, filePath); } Assert.assertEquals("ValidateFunctionContext is failing", "", getExceptionMessage()); element = PoshiRunnerContext.getMacroCommandElement( "ValidateFunctionContext#validateFunctionContextFail1"); functionElements = element.elements("execute"); for (Element functionElement : functionElements) { PoshiRunnerValidation.validateFunctionContext(functionElement, filePath); } Assert.assertEquals( "validateFunctionContext is failing", "Invalid path name ClickAt", getExceptionMessage()); element = PoshiRunnerContext.getMacroCommandElement( "ValidateFunctionContext#validateFunctionContextFail2"); functionElements = element.elements("execute"); for (Element functionElement : functionElements) { PoshiRunnerValidation.validateFunctionContext(functionElement, filePath); } Assert.assertEquals( "validateFunctionContext is failing", "Invalid path locator Click#CLICK_THERE", getExceptionMessage()); }
public static void runMacroExecuteElement(Element executeElement, String macroType) throws Exception { PoshiRunnerStackTraceUtil.setCurrentElement(executeElement); XMLLoggerHandler.updateStatus(executeElement, "pending"); String classCommandName = executeElement.attributeValue(macroType); String className = PoshiRunnerGetterUtil.getClassNameFromClassCommandName(classCommandName); PoshiRunnerStackTraceUtil.pushStackTrace(executeElement); Element rootElement = PoshiRunnerContext.getMacroRootElement(className); List<Element> rootVarElements = rootElement.elements("var"); for (Element rootVarElement : rootVarElements) { runVarElement(rootVarElement, false, true); } PoshiRunnerStackTraceUtil.popStackTrace(); List<Element> executeVarElements = executeElement.elements("var"); for (Element executeVarElement : executeVarElements) { runVarElement(executeVarElement, false, false); } PoshiRunnerStackTraceUtil.pushStackTrace(executeElement); SummaryLoggerHandler.startSummary(executeElement); Element commandElement = PoshiRunnerContext.getMacroCommandElement(classCommandName); try { Map<String, String> macroReturns = runMacroCommandElement(classCommandName, commandElement); List<Element> returnElements = executeElement.elements("return"); for (Element returnElement : returnElements) { String returnFrom = returnElement.attributeValue("from"); String returnValue = macroReturns.get(returnFrom); if (returnValue != null) { String returnName = returnElement.attributeValue("name"); PoshiRunnerVariablesUtil.putIntoCommandMap(returnName, returnValue); } } } catch (Exception e) { SummaryLoggerHandler.failSummary(executeElement, e.getMessage()); throw e; } SummaryLoggerHandler.passSummary(executeElement); PoshiRunnerStackTraceUtil.popStackTrace(); XMLLoggerHandler.updateStatus(executeElement, "pass"); }