Search in sources :

Example 1 with TestCaseVariable

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();
    }
}
Also used : RequestableHttpVariable(com.twinsoft.convertigo.beans.variables.RequestableHttpVariable) DatabaseObjectTreeObject(com.twinsoft.convertigo.eclipse.views.projectexplorer.model.DatabaseObjectTreeObject) RequestableMultiValuedVariable(com.twinsoft.convertigo.beans.variables.RequestableMultiValuedVariable) RequestableHttpVariable(com.twinsoft.convertigo.beans.variables.RequestableHttpVariable) HttpStatementVariable(com.twinsoft.convertigo.beans.variables.HttpStatementVariable) TestCaseVariable(com.twinsoft.convertigo.beans.variables.TestCaseVariable) HttpStatementMultiValuedVariable(com.twinsoft.convertigo.beans.variables.HttpStatementMultiValuedVariable) Variable(com.twinsoft.convertigo.beans.core.Variable) StepVariable(com.twinsoft.convertigo.beans.variables.StepVariable) StepMultiValuedVariable(com.twinsoft.convertigo.beans.variables.StepMultiValuedVariable) TestCaseMultiValuedVariable(com.twinsoft.convertigo.beans.variables.TestCaseMultiValuedVariable) RequestableVariable(com.twinsoft.convertigo.beans.variables.RequestableVariable) RequestableHttpMultiValuedVariable(com.twinsoft.convertigo.beans.variables.RequestableHttpMultiValuedVariable) TreeParent(com.twinsoft.convertigo.eclipse.views.projectexplorer.TreeParent) HttpStatementMultiValuedVariable(com.twinsoft.convertigo.beans.variables.HttpStatementMultiValuedVariable) StepVariable(com.twinsoft.convertigo.beans.variables.StepVariable) Cursor(org.eclipse.swt.graphics.Cursor) HTTPStatement(com.twinsoft.convertigo.beans.statements.HTTPStatement) StepMultiValuedVariable(com.twinsoft.convertigo.beans.variables.StepMultiValuedVariable) Shell(org.eclipse.swt.widgets.Shell) DatabaseObject(com.twinsoft.convertigo.beans.core.DatabaseObject) VariableTreeObject2(com.twinsoft.convertigo.eclipse.views.projectexplorer.model.VariableTreeObject2) ProjectExplorerView(com.twinsoft.convertigo.eclipse.views.projectexplorer.ProjectExplorerView) RequestableVariable(com.twinsoft.convertigo.beans.variables.RequestableVariable) Sequence(com.twinsoft.convertigo.beans.core.Sequence) HttpStatementVariable(com.twinsoft.convertigo.beans.variables.HttpStatementVariable) TestCaseVariable(com.twinsoft.convertigo.beans.variables.TestCaseVariable) TestCaseMultiValuedVariable(com.twinsoft.convertigo.beans.variables.TestCaseMultiValuedVariable) RequestableHttpMultiValuedVariable(com.twinsoft.convertigo.beans.variables.RequestableHttpMultiValuedVariable) TestCase(com.twinsoft.convertigo.beans.core.TestCase) RequestableStep(com.twinsoft.convertigo.beans.core.RequestableStep) RequestableMultiValuedVariable(com.twinsoft.convertigo.beans.variables.RequestableMultiValuedVariable) TreeObject(com.twinsoft.convertigo.eclipse.views.projectexplorer.model.TreeObject) DatabaseObjectTreeObject(com.twinsoft.convertigo.eclipse.views.projectexplorer.model.DatabaseObjectTreeObject) TransactionWithVariables(com.twinsoft.convertigo.beans.core.TransactionWithVariables) DatabaseObject(com.twinsoft.convertigo.beans.core.DatabaseObject) TreeObject(com.twinsoft.convertigo.eclipse.views.projectexplorer.model.TreeObject) DatabaseObjectTreeObject(com.twinsoft.convertigo.eclipse.views.projectexplorer.model.DatabaseObjectTreeObject) Display(org.eclipse.swt.widgets.Display)

Example 2 with TestCaseVariable

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 + "'!");
    }
}
Also used : TestCase(com.twinsoft.convertigo.beans.core.TestCase) EngineException(com.twinsoft.convertigo.engine.EngineException) TestCaseVariable(com.twinsoft.convertigo.beans.variables.TestCaseVariable)

Example 3 with TestCaseVariable

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;
            }
        }
    }
}
Also used : TestCaseMultiValuedVariable(com.twinsoft.convertigo.beans.variables.TestCaseMultiValuedVariable) EngineException(com.twinsoft.convertigo.engine.EngineException) RequestableVariable(com.twinsoft.convertigo.beans.variables.RequestableVariable) TestCaseVariable(com.twinsoft.convertigo.beans.variables.TestCaseVariable)

Example 4 with TestCaseVariable

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;
}
Also used : EngineException(com.twinsoft.convertigo.engine.EngineException) TestCaseVariable(com.twinsoft.convertigo.beans.variables.TestCaseVariable)

Example 5 with TestCaseVariable

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!");
}
Also used : TestCase(com.twinsoft.convertigo.beans.core.TestCase) NativeJavaObject(org.mozilla.javascript.NativeJavaObject) TestCaseVariable(com.twinsoft.convertigo.beans.variables.TestCaseVariable)

Aggregations

TestCaseVariable (com.twinsoft.convertigo.beans.variables.TestCaseVariable)12 TestCase (com.twinsoft.convertigo.beans.core.TestCase)7 RequestableVariable (com.twinsoft.convertigo.beans.variables.RequestableVariable)5 XMLVector (com.twinsoft.convertigo.beans.common.XMLVector)3 TestCaseMultiValuedVariable (com.twinsoft.convertigo.beans.variables.TestCaseMultiValuedVariable)3 EngineException (com.twinsoft.convertigo.engine.EngineException)3 DatabaseObject (com.twinsoft.convertigo.beans.core.DatabaseObject)2 RequestableStep (com.twinsoft.convertigo.beans.core.RequestableStep)2 Sequence (com.twinsoft.convertigo.beans.core.Sequence)2 TransactionWithVariables (com.twinsoft.convertigo.beans.core.TransactionWithVariables)2 Variable (com.twinsoft.convertigo.beans.core.Variable)2 HTTPStatement (com.twinsoft.convertigo.beans.statements.HTTPStatement)2 HttpStatementMultiValuedVariable (com.twinsoft.convertigo.beans.variables.HttpStatementMultiValuedVariable)2 HttpStatementVariable (com.twinsoft.convertigo.beans.variables.HttpStatementVariable)2 RequestableHttpMultiValuedVariable (com.twinsoft.convertigo.beans.variables.RequestableHttpMultiValuedVariable)2 RequestableHttpVariable (com.twinsoft.convertigo.beans.variables.RequestableHttpVariable)2 RequestableMultiValuedVariable (com.twinsoft.convertigo.beans.variables.RequestableMultiValuedVariable)2 StepMultiValuedVariable (com.twinsoft.convertigo.beans.variables.StepMultiValuedVariable)2 StepVariable (com.twinsoft.convertigo.beans.variables.StepVariable)2 ProjectExplorerView (com.twinsoft.convertigo.eclipse.views.projectexplorer.ProjectExplorerView)2