/** * @deprecated Use {@link #setScript(XmlScript)} instead. */ @Deprecated public void setBeanShellExpression(String expression) { if (expression != null) { XmlScript script = new XmlScript(); script.setExpression(expression); script.setLanguage("BeanShell"); } }
/** * @return Returns the language. */ public String getLanguage() { return m_script.getLanguage(); }
/** * @return Returns the expression. * @deprecated Use {@link #getScript()} instead. */ @Deprecated public String getExpression() { if (m_script == null) { return null; } return m_script.getExpression(); }
/** * @param expression The expression to set. * @deprecated Use {@link #setScript(XmlScript)} instead. */ @Deprecated public void setExpression(String expression) { if (m_script == null) { m_script = new XmlScript(); } m_script.setExpression(expression); }
/** * @param language The language to set. * @deprecated Use {@link #setScript(XmlScript)} instead */ // @OnElement(tag = "script", attributes = "language") @Deprecated public void setLanguage(String language) { if (m_script == null) { m_script = new XmlScript(); } m_script.setLanguage(language); }
@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((m_className == null) ? 0 : m_className.hashCode()); if (getScript() != null) { result = prime * result + ((getScript().getExpression() == null) ? 0 : getScript().getExpression().hashCode()); result = prime * result + ((getScript().getLanguage() == null) ? 0 : getScript().getLanguage().hashCode()); } result = prime * result + m_priority; return result; }
/** * @param language The language to set. */ // @OnElement(tag = "script", attributes = "language") public void setLanguage(String language) { m_script.setLanguage(language); // m_language = language; }
/** * @return Returns the expression. */ public String getExpression() { return m_script.getScript(); }
/** * @param expression The expression to set. */ public void setExpression(String expression) { m_script.setScript(expression); }
public static ScriptMethodSelector getScriptSelector(XmlScript script) { if (script == null || script.getLanguage() == null) { throw new IllegalArgumentException("Language name must not be null"); } String languageName = script.getLanguage().toLowerCase(); ScriptEngineFactory engineFactory = ENGINE_FACTORIES.get(languageName); if (engineFactory == null) { ServiceLoader<ScriptEngineFactory> loader = ServiceLoader.load(ScriptEngineFactory.class); for (ScriptEngineFactory factory : loader) { ENGINE_FACTORIES.put(factory.getLanguageName().toLowerCase(), factory); } engineFactory = ENGINE_FACTORIES.get(languageName); } if (engineFactory == null) { throw new TestNGException("No engine found for language: " + script.getLanguage() + ". " + "Please check your dependencies and have a look at " + "https://github.com/cbeust/testng/wiki/Supported-script-engines"); } return new ScriptMethodSelector(engineFactory.getScriptEngine(), script.getExpression()); } }
/** * @deprecated Use {@link #setScript(XmlScript)} instead */ @Deprecated public void setExpression(String expression) { XmlScript script = new XmlScript(); script.setLanguage("BeanShell"); script.setExpression(expression); setScript(script); }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return XmlSuite.f(); if (getClass() != obj.getClass()) return XmlSuite.f(); XmlMethodSelector other = (XmlMethodSelector) obj; if (m_className == null) { if (other.m_className != null) return XmlSuite.f(); } else if (!m_className.equals(other.m_className)) return XmlSuite.f(); if (getScript() == null || getScript().getExpression() == null) { if (other.getScript() != null && other.getScript().getExpression() != null) return XmlSuite.f(); } else if (!getScript().getExpression().equals(other.getScript() == null ? null : other.getScript().getExpression())) { return XmlSuite.f(); } if (getScript() == null || getScript().getLanguage() == null) { if (other.getScript() != null && other.getScript().getLanguage() != null) return XmlSuite.f(); } else if (!getScript().getLanguage().equals(other.getScript() == null ? null : other.getScript().getLanguage())) { return XmlSuite.f(); } if (m_priority != other.m_priority) return XmlSuite.f(); return true; } }
/** * @return Returns the language. * @deprecated Use {@link #getScript()} instead */ @Deprecated public String getLanguage() { if (m_script == null) { return null; } return m_script.getLanguage(); }
/** * @deprecated Use {@link #getScript()} instead. */ @Deprecated public String getExpression() { XmlScript script = getScript(); if (script == null) { return null; } return script.getExpression(); }
/** Parse <script> */ private void xmlScript(boolean start, Attributes attributes) { if (start) { m_currentLanguage = attributes.getValue("language"); m_currentExpression = ""; } else { XmlScript script = new XmlScript(); script.setExpression(m_currentExpression); script.setLanguage(m_currentLanguage); m_currentSelector.setScript(script); if (m_locations.peek() == Location.TEST) { m_currentTest.setScript(script); } m_currentLanguage = null; m_currentExpression = null; } }
public String toXml(String indent) { XMLStringBuffer xsb = new XMLStringBuffer(indent); xsb.push("method-selector"); if (null != m_className) { Properties clsProp = new Properties(); clsProp.setProperty("name", getClassName()); if (getPriority() != -1) { clsProp.setProperty("priority", String.valueOf(getPriority())); } xsb.addEmptyElement("selector-class", clsProp); } else if (getScript() != null && getScript().getLanguage() != null) { Properties scriptProp = new Properties(); scriptProp.setProperty("language", getScript().getLanguage()); xsb.push("script", scriptProp); xsb.addCDATA(getScript().getExpression()); xsb.pop("script"); } else { throw new TestNGException("Invalid Method Selector: found neither class name nor language"); } xsb.pop("method-selector"); return xsb.toXML(); }
protected void setScript(String language, String expression) { XmlScript script = new XmlScript(); script.setExpression(expression); script.setLanguage(language); getTest().setScript(script); }
@Test (expectedExceptions = TestNGException.class, expectedExceptionsMessageRegExp = ".*No engine found for language: " + LANGUAGE_NAME + ".*") public void testNegativeScenario() { XmlSuite suite = createXmlSuite("suite"); XmlTest test = createXmlTest(suite, "test", "test.methodselectors.SampleTest"); XmlScript script = new XmlScript(); script.setLanguage(LANGUAGE_NAME); script.setExpression("expression"); XmlMethodSelector selector = new XmlMethodSelector(); selector.setScript(script); test.setMethodSelectors(Collections.singletonList(selector)); TestNG tng = create(suite); tng.run(); } }