private static Class<?> getUnderlyingType(FieldStatement fs) { return fs.getField().getDeclaringClass(); }
private boolean fieldNeedsDownCast(FieldStatement fieldStatement, VariableReference var, Class<?> abstractClass) { if(!fieldStatement.isStatic() && fieldStatement.getSource().equals(var)) { if(!fieldStatement.getField().getDeclaringClass().isAssignableFrom(abstractClass)) { // Need downcast for real return true; } } return false; }
} else if (s instanceof FieldStatement) { FieldStatement fs = (FieldStatement) s; accessedClasses.add(fs.getField().getField().getDeclaringClass()); accessedClasses.add(fs.getField().getField().getType()); } else if (s instanceof ConstructorStatement) { ConstructorStatement cs = (ConstructorStatement) s;
GenericField field = statement.getField();
private void after(FieldStatement s, Scope scope) { ReferenceExpressionPair readResult; if (s.getSource() != null) { readResult = readInstanceField(s.getSource(), s.getField().getField(), scope); } else { readResult = readStaticField(s.getField().getField()); } String lhs_name = s.getReturnValue().getName(); Expression<?> expr = readResult.getExpression(); ReferenceExpression ref = readResult.getReference(); if (expr != null) symb_expressions.put(lhs_name, expr); if (ref != null) symb_references.put(lhs_name, ref); }
/** * Check if this statement is related to the unit under test * * @param statement * a {@link org.evosuite.testcase.statements.Statement} object. * @return a boolean. */ protected boolean isTargetStatement(Statement statement) { //if (statement.getReturnClass().equals(Properties.getTargetClass())) // return true; if (statement instanceof MethodStatement) { MethodStatement ms = (MethodStatement) statement; final Class<?> targetClass = Properties.getTargetClassAndDontInitialise(); if (targetClass.equals(ms.getMethod().getDeclaringClass())) return true; } else if (statement instanceof ConstructorStatement) { ConstructorStatement cs = (ConstructorStatement) statement; final Class<?> targetClass = Properties.getTargetClassAndDontInitialise(); if (targetClass.equals(cs.getConstructor().getDeclaringClass())) return true; } else if (statement instanceof FieldStatement) { FieldStatement fs = (FieldStatement) statement; final Class<?> targetClass = Properties.getTargetClassAndDontInitialise(); if (targetClass.equals(fs.getField().getDeclaringClass())) return true; } return false; }
/** * Append statement s, trying to satisfy parameters * * Called from TestChromosome when doing crossover * * @param test * @param statement */ public void appendStatement(TestCase test, Statement statement) throws ConstructionFailedException { currentRecursion.clear(); if (statement instanceof ConstructorStatement) { addConstructor(test, ((ConstructorStatement) statement).getConstructor(), test.size(), 0); } else if (statement instanceof MethodStatement) { GenericMethod method = ((MethodStatement) statement).getMethod(); addMethod(test, method, test.size(), 0); } else if (statement instanceof PrimitiveStatement<?>) { addPrimitive(test, (PrimitiveStatement<?>) statement, test.size()); // test.statements.add((PrimitiveStatement) statement); } else if (statement instanceof FieldStatement) { addField(test, ((FieldStatement) statement).getField(), test.size(), 0); } }
if (fieldStatement.getField().isStatic()) { VariableReference fieldReference = fieldStatement.getReturnValue(); if (Properties.RESET_STATIC_FIELD_GETS) { moreClassesForStaticReset.add(fieldStatement.getField().getOwnerClass().getClassName()); .isPure(((MethodStatement) invokedStatement).getMethod().getMethod())) { moreClassesForStaticReset .add(fieldStatement.getField().getOwnerClass().getClassName()); break;