@Override public void visitAssertStatement(AssertStatement stat) { replaceExpr(stat.getBooleanExpression()); replaceExpr(stat.getMessageExpression()); }
protected Statement assertStatement(AST assertNode) { AST node = assertNode.getFirstChild(); BooleanExpression booleanExpression = booleanExpression(node); Expression messageExpression = null; node = node.getNextSibling(); if (node != null) { messageExpression = expression(node); } else { messageExpression = ConstantExpression.NULL; } AssertStatement assertStatement = new AssertStatement(booleanExpression, messageExpression); configureAST(assertStatement, assertNode); return assertStatement; }
public void visitAssertStatement(AssertStatement as) { as.setBooleanExpression((BooleanExpression) (transform(as.getBooleanExpression()))); as.setMessageExpression(transform(as.getMessageExpression())); }
public SourceTextNotAvailableException(AssertStatement stat, SourceUnit unit, String msg) { super(String.format("%s for %s at (%d,%d)-(%d,%d) in %s", msg, stat.getBooleanExpression().getText(), stat.getLineNumber(), stat.getColumnNumber(), stat.getLastLineNumber(), stat.getLastColumnNumber(), unit.getName())); } }
public static Statement rewriteExplicitCondition(AssertStatement stat, IRewriteResources resources) { ConditionRewriter rewriter = new ConditionRewriter(resources); Expression message = AstUtil.getAssertionMessage(stat); return rewriter.rewriteCondition(stat, stat.getBooleanExpression().getExpression(), message, true); }
@Nullable public static Expression getAssertionMessage(AssertStatement stat) { Expression msg = stat.getMessageExpression(); if (msg == null) return null; // should not happen if (!(msg instanceof ConstantExpression)) return msg; return ((ConstantExpression) msg).isNullExpression() ? null : msg; }
/** * Reusable method for creating assert statements for the given <tt>booleanExpression</tt>. * * @param booleanExpression the assertion's {@link org.codehaus.groovy.ast.expr.BooleanExpression} * * @return a newly created {@link org.codehaus.groovy.ast.stmt.AssertStatement} */ public static AssertStatement getAssertionStatement(final BooleanExpression booleanExpression) { final AssertStatement assertStatement = new AssertStatement(booleanExpression); assertStatement.setStatementLabel((String) booleanExpression.getNodeMetaData("statementLabel")); assertStatement.setSourcePosition(booleanExpression); return assertStatement; }
throw new SourceTextNotAvailableException(stat, sourceUnit, "Invalid source position"); firstLine = stat.getLineNumber(); textOffsets.add(0); StringBuilder normalizedTextBuffer = new StringBuilder(); for (int line = stat.getLineNumber(); line <= stat.getLastLineNumber(); line++) { String lineText = sourceUnit.getSample(line, 0, janitor); if (lineText == null) throw new SourceTextNotAvailableException(stat, sourceUnit, "SourceUnit.getSample() returned null"); if (line == stat.getLastLineNumber()) lineText = lineText.substring(0, stat.getLastColumnNumber() - 1); if (line == stat.getLineNumber()) { lineText = lineText.substring(stat.getColumnNumber() - 1); lineOffsets.add(stat.getColumnNumber() - 1); } else lineOffsets.add(countLeadingWhitespace(lineText)); if (line != stat.getLastLineNumber() && lineText.length() > 0) lineText += ' '; normalizedTextBuffer.append(lineText);
OperandStack operandStack = controller.getOperandStack(); BooleanExpression booleanExpression = statement.getBooleanExpression();
public void visitAssertStatement(AssertStatement statement) { statement.getBooleanExpression().visit(this); statement.getMessageExpression().visit(this); }
public void visitAssertStatement(AssertStatement as) { as.setBooleanExpression((BooleanExpression) (transform(as.getBooleanExpression()))); as.setMessageExpression(transform(as.getMessageExpression())); }
public SourceTextNotAvailableException(AssertStatement stat, SourceUnit unit, String msg) { super(String.format("%s for %s at (%d,%d)-(%d,%d) in %s", msg, stat.getBooleanExpression().getText(), stat.getLineNumber(), stat.getColumnNumber(), stat.getLastLineNumber(), stat.getLastColumnNumber(), unit.getName())); } }
namedArgKey, callX(varX(mapParam), "keySet"), new AssertStatement(boolX(callX(list2args(propNames), "contains", varX(namedArgKey))), plusX(new ConstantExpression("Unrecognized namedArgKey: "), varX(namedArgKey))) ));
/** * Returns all {@link BooleanExpression} instances found in the given {@link BlockStatement}. */ public static List<BooleanExpression> getBooleanExpressionsFromAssertionStatements(BlockStatement blockStatement) { AssertStatementCollector collector = new AssertStatementCollector(); collector.visitBlockStatement(blockStatement); List<AssertStatement> assertStatements = collector.assertStatements; if (assertStatements.isEmpty()) return Collections.emptyList(); List<BooleanExpression> booleanExpressions = new ArrayList<BooleanExpression>(); for (AssertStatement assertStatement : assertStatements) { booleanExpressions.add(assertStatement.getBooleanExpression()); } return booleanExpressions; }
public void visitAssertStatement(final AssertStatement statement) { assertStatementAuthorized(statement); statement.getBooleanExpression().visit(this); statement.getMessageExpression().visit(this); }
public void visitAssertStatement(AssertStatement as) { as.setBooleanExpression((BooleanExpression) (transform(as.getBooleanExpression()))); as.setMessageExpression(transform(as.getMessageExpression())); }
throw new SourceTextNotAvailableException(stat, sourceUnit, "Invalid source position"); firstLine = stat.getLineNumber(); textOffsets.add(0); normalizedText = ""; for (int line = stat.getLineNumber(); line <= stat.getLastLineNumber(); line++) { String lineText = sourceUnit.getSample(line, 0, janitor); if (lineText == null) throw new SourceTextNotAvailableException(stat, sourceUnit, "SourceUnit.getSample() returned null"); if (line == stat.getLastLineNumber()) lineText = lineText.substring(0, stat.getLastColumnNumber() - 1); if (line == stat.getLineNumber()) { lineText = lineText.substring(stat.getColumnNumber() - 1); lineOffsets.add(stat.getColumnNumber() - 1); } else lineOffsets.add(countLeadingWhitespace(lineText)); if (line != stat.getLastLineNumber() && lineText.length() > 0) lineText += ' '; normalizedText += lineText;
private boolean processExplicitNamedParam(MethodNode mNode, Parameter mapParam, BlockStatement inner, ArgumentListExpression args, List<String> propNames, Parameter fromParam) { AnnotationNode namedParam = fromParam.getAnnotations(NAMED_PARAM_TYPE).get(0); boolean required = memberHasValue(namedParam, "required", true); if (getMemberStringValue(namedParam, "value") == null) { namedParam.addMember("value", constX(fromParam.getName())); } String name = getMemberStringValue(namedParam, "value"); if (getMemberValue(namedParam, "type") == null) { namedParam.addMember("type", classX(fromParam.getType())); } if (hasDuplicates(mNode, propNames, name)) return false; // TODO check specified type is assignable from declared param type? // ClassNode type = getMemberClassValue(namedParam, "type"); if (required) { if (fromParam.hasInitialExpression()) { addError("Error during " + MY_TYPE_NAME + " processing. A required parameter can't have an initial value.", mNode); return false; } inner.addStatement(new AssertStatement(boolX(callX(varX(mapParam), "containsKey", args(constX(name)))), plusX(new ConstantExpression("Missing required named argument '" + name + "'. Keys found: "), callX(varX(mapParam), "keySet")))); } args.addExpression(propX(varX(mapParam), name)); mapParam.addAnnotation(namedParam); fromParam.getAnnotations().remove(namedParam); return true; }
OperandStack operandStack = controller.getOperandStack(); BooleanExpression booleanExpression = statement.getBooleanExpression();
rewriteAssert = statement.getMessageExpression() == ConstantExpression.NULL; AssertionTracker oldTracker = assertionTracker; Janitor janitor = new Janitor(); statement.getBooleanExpression().visit(controller.getAcg()); statement.getMessageExpression().visit(controller.getAcg()); operandStack.box(); assertFailedMethod.call(mv);