use of com.twinsoft.convertigo.beans.variables.TestCaseVariable in project convertigo by convertigo.
the class ChangeToSingleValuedVariableAction method run.
@Override
public void run() {
Display display = Display.getDefault();
Cursor waitCursor = new Cursor(display, SWT.CURSOR_WAIT);
Shell shell = getParentShell();
shell.setCursor(waitCursor);
try {
ProjectExplorerView explorerView = getProjectExplorerView();
if (explorerView != null) {
TreeObject treeObject = explorerView.getFirstSelectedTreeObject();
TreeParent treeParent = treeObject.getParent();
DatabaseObjectTreeObject parentTreeObject = null;
if (treeParent instanceof DatabaseObjectTreeObject)
parentTreeObject = (DatabaseObjectTreeObject) treeParent;
else
parentTreeObject = (DatabaseObjectTreeObject) treeParent.getParent();
if (parentTreeObject != null) {
Object databaseObject = treeObject.getObject();
if (databaseObject != null) {
Variable multi = (Variable) databaseObject;
Variable simple = null;
if (databaseObject instanceof TestCaseMultiValuedVariable)
simple = new TestCaseVariable();
if (databaseObject instanceof StepMultiValuedVariable)
simple = new StepVariable();
if (databaseObject instanceof RequestableMultiValuedVariable)
simple = new RequestableVariable();
if (databaseObject instanceof RequestableHttpMultiValuedVariable)
simple = new RequestableHttpVariable();
if (databaseObject instanceof HttpStatementMultiValuedVariable)
simple = new HttpStatementVariable();
if (simple != null) {
if (multi instanceof StepMultiValuedVariable) {
((StepVariable) simple).setSourceDefinition(((StepVariable) multi).getSourceDefinition());
}
if (multi instanceof RequestableVariable) {
((RequestableVariable) simple).setXmlTypeAffectation(((RequestableVariable) multi).getXmlTypeAffectation());
}
if (multi instanceof RequestableHttpVariable) {
// HttpName
((RequestableHttpVariable) simple).setHttpName(((RequestableHttpVariable) multi).getHttpName());
// HttpMethod
((RequestableHttpVariable) simple).setHttpMethod(((RequestableHttpVariable) multi).getHttpMethod());
}
XMLVector<Object> xmlv = GenericUtils.cast(multi.getValueOrNull());
Object value = (xmlv == null) ? null : (xmlv.isEmpty() ? "" : xmlv.get(0).toString());
simple.setValueOrNull(value);
simple.setVisibility(multi.getVisibility());
// Comment
simple.setComment(multi.getComment());
// Description
simple.setDescription(multi.getDescription());
// Required
simple.setRequired(multi.isRequired());
simple.bNew = true;
simple.hasChanged = true;
// Add new variable to parent
DatabaseObject parentDbo = multi.getParent();
parentDbo.add(simple);
// Set correct order
if (parentDbo instanceof TestCase)
((TestCase) parentDbo).insertAtOrder(simple, multi.priority);
if (parentDbo instanceof RequestableStep)
((RequestableStep) parentDbo).insertAtOrder(simple, multi.priority);
if (parentDbo instanceof Sequence)
((Sequence) parentDbo).insertAtOrder(simple, multi.priority);
if (parentDbo instanceof TransactionWithVariables)
((TransactionWithVariables) parentDbo).insertAtOrder(simple, multi.priority);
if (parentDbo instanceof HTTPStatement)
((HTTPStatement) parentDbo).insertAtOrder(simple, multi.priority);
// Add new variable in Tree
VariableTreeObject2 varTreeObject = new VariableTreeObject2(explorerView.viewer, simple);
treeParent.addChild(varTreeObject);
// Delete simple variable
multi.delete();
// Set correct name
simple.setName(multi.getName());
parentTreeObject.hasBeenModified(true);
explorerView.reloadTreeObject(parentTreeObject);
explorerView.setSelectedTreeObject(explorerView.findTreeObjectByUserObject(simple));
}
}
}
}
} catch (Throwable e) {
ConvertigoPlugin.logException(e, "Unable to change simple variable to multi valuated variable!");
} finally {
shell.setCursor(null);
waitCursor.dispose();
}
}
use of com.twinsoft.convertigo.beans.variables.TestCaseVariable in project convertigo by convertigo.
the class VariableTreeObject2 method propagateVariableRename.
private void propagateVariableRename(boolean isSameValue, boolean shouldUpdate, TreeObjectEvent treeObjectEvent, List<TestCase> list, String parentName) {
try {
/*
* get the testcases list
*/
if (list != null) {
TestCase testCase;
TestCaseVariable testCaseVar;
/*
* locate testcase belonging to same sequence
*/
for (int i = 0; i < list.size(); i++) {
if (((testCase = (TestCase) list.get(i)) != null) && (testCase.getParent().getName().equals(parentName))) {
/*
* get the testcase variables list
*/
List<TestCaseVariable> varList = testCase.getAllVariables();
for (int v = 0; v < varList.size(); v++) {
if ((testCaseVar = (TestCaseVariable) varList.get(v)) != null) {
/*
* if variables have same name, then update the value
*/
if (testCaseVar.getName().equalsIgnoreCase((String) treeObjectEvent.oldValue)) {
testCaseVar.setName((String) treeObjectEvent.newValue);
testCaseVar.hasChanged = true;
updateNameReference(isSameValue, shouldUpdate, testCaseVar, (String) treeObjectEvent.newValue);
}
}
}
}
}
}
} catch (Exception e) {
ConvertigoPlugin.logException(e, "Unable to propagate variable " + (String) treeObjectEvent.oldValue + " renaming to testcase in '" + parentName + "'!");
}
}
use of com.twinsoft.convertigo.beans.variables.TestCaseVariable in project convertigo by convertigo.
the class TestCase method importRequestableVariables.
public void importRequestableVariables(RequestableObject requestable) throws EngineException {
if (!(requestable instanceof IVariableContainer))
return;
IVariableContainer container = (IVariableContainer) requestable;
int size = container.numberOfVariables();
for (int i = 0; i < size; i++) {
RequestableVariable variable = (RequestableVariable) container.getVariable(i);
if (variable != null) {
String variableName = variable.getName();
if (getVariable(variableName) == null) {
if (!StringUtils.isNormalized(variableName))
throw new EngineException("Variable name is not normalized : \"" + variableName + "\".");
TestCaseVariable testCaseVariable = variable.isMultiValued() ? new TestCaseMultiValuedVariable() : new TestCaseVariable();
testCaseVariable.setName(variableName);
testCaseVariable.setDescription(variable.getDescription());
testCaseVariable.setRequired(variable.isRequired());
testCaseVariable.setValueOrNull(variable.getValueOrNull());
testCaseVariable.setVisibility(variable.getVisibility());
addVariable(testCaseVariable);
testCaseVariable.bNew = true;
testCaseVariable.hasChanged = true;
hasChanged = true;
}
}
}
}
use of com.twinsoft.convertigo.beans.variables.TestCaseVariable in project convertigo by convertigo.
the class TestCase method getVariableValue.
@Override
public Object getVariableValue(String requestedVariableName) throws EngineException {
Object value = null, valueToPrint = null;
TestCaseVariable testCaseVariable = (TestCaseVariable) getVariable(requestedVariableName);
if (testCaseVariable != null) {
value = testCaseVariable.getValueOrNull();
valueToPrint = Visibility.Logs.printValue(testCaseVariable.getVisibility(), value);
if (Engine.logBeans.isDebugEnabled()) {
if ((value != null) && (value instanceof String))
Engine.logBeans.debug("Default value: " + requestedVariableName + " = \"" + valueToPrint + "\"");
else
Engine.logBeans.debug("Default value: " + requestedVariableName + " = " + valueToPrint);
}
if (value == null && testCaseVariable.isRequired()) {
throw new EngineException("Variable named \"" + requestedVariableName + "\" is required for testcase \"" + getName() + "\"");
}
}
return value;
}
use of com.twinsoft.convertigo.beans.variables.TestCaseVariable in project convertigo by convertigo.
the class InternalRequester method initContext.
@Override
public void initContext(Context context) throws Exception {
if (httpServletRequest != null) {
context.setRequest(httpServletRequest);
}
super.initContext(context);
Map<String, Object> request = GenericUtils.cast(inputData);
// We transform the HTTP post data into XML data.
Set<String> parameterNames = request.keySet();
boolean bConnectorGivenByUser = false;
for (String parameterName : parameterNames) {
String parameterValue;
// Handle only convertigo parameters
if (parameterName.startsWith("__")) {
Object parameterObjectValue = request.get(parameterName);
parameterValue = getParameterValue(parameterObjectValue);
handleParameter(context, parameterName, parameterValue);
if (parameterName.equals(Parameter.Connector.getName())) {
bConnectorGivenByUser = true;
}
}
}
TestCase tc = TestCase.getTestCase(request, context.projectName);
if (tc != null) {
for (TestCaseVariable var : tc.getVariables()) {
String parameterName = var.getName();
String parameterValue;
// Handle only convertigo parameters
if (!request.containsKey(parameterName) && parameterName.startsWith("__")) {
Object parameterObjectValue = var.getValueOrNull();
parameterValue = getParameterValue(parameterObjectValue);
if (parameterValue != null) {
handleParameter(context, parameterName, parameterValue);
if (parameterName.equals(Parameter.Connector.getName())) {
bConnectorGivenByUser = true;
}
}
}
}
}
if (!bConnectorGivenByUser) {
if (context.project != null && context.project.getName().equals(context.projectName)) {
String defaultConnectorName = context.project.getDefaultConnector().getName();
if (!defaultConnectorName.equals(context.connectorName)) {
context.connectorName = defaultConnectorName;
}
}
}
Engine.logContext.debug("Context initialized!");
}
Aggregations