Search in sources :

Example 1 with VariableReferenceImpl

use of org.evosuite.testcase.variable.VariableReferenceImpl in project evosuite by EvoSuite.

the class TestOverloading method testOverloadedConstructor.

@Test
public void testOverloadedConstructor() {
    Class<?> clazz = ClassWithOverloadedMethods.class;
    Constructor<?> constructor1 = clazz.getConstructors()[0];
    Constructor<?> constructor2 = clazz.getConstructors()[1];
    GenericConstructor genericConstructor1 = new GenericConstructor(constructor1, clazz);
    GenericConstructor genericConstructor2 = new GenericConstructor(constructor2, clazz);
    TestCase test = new DefaultTestCase();
    ConstantValue intValue = new ConstantValue(test, int.class);
    VariableReference integerVar = new VariableReferenceImpl(test, Integer.class);
    List<VariableReference> parameters = Arrays.asList(intValue, integerVar);
    assertTrue(genericConstructor1.isOverloaded(parameters));
    assertTrue(genericConstructor2.isOverloaded(parameters));
}
Also used : ClassWithOverloadedMethods(com.examples.with.different.packagename.utils.generic.ClassWithOverloadedMethods) VariableReference(org.evosuite.testcase.variable.VariableReference) DefaultTestCase(org.evosuite.testcase.DefaultTestCase) TestCase(org.evosuite.testcase.TestCase) VariableReferenceImpl(org.evosuite.testcase.variable.VariableReferenceImpl) DefaultTestCase(org.evosuite.testcase.DefaultTestCase) ConstantValue(org.evosuite.testcase.variable.ConstantValue) Test(org.junit.Test)

Example 2 with VariableReferenceImpl

use of org.evosuite.testcase.variable.VariableReferenceImpl in project evosuite by EvoSuite.

the class TestOverloading method testOverloadedMethod.

@Test
public void testOverloadedMethod() {
    Class<?> clazz = ClassWithOverloadedMethods.class;
    Method method1 = clazz.getMethods()[0];
    Method method2 = clazz.getMethods()[1];
    GenericMethod genericMethod1 = new GenericMethod(method1, clazz);
    GenericMethod genericMethod2 = new GenericMethod(method2, clazz);
    TestCase test = new DefaultTestCase();
    ConstantValue intValue = new ConstantValue(test, int.class);
    VariableReference integerVar = new VariableReferenceImpl(test, Integer.class);
    List<VariableReference> parameters1 = Arrays.asList(intValue);
    List<VariableReference> parameters2 = Arrays.asList(integerVar);
    assertTrue(genericMethod1.isOverloaded());
    assertTrue(genericMethod2.isOverloaded());
    assertTrue(genericMethod1.isOverloaded(parameters1));
    assertTrue(genericMethod2.isOverloaded(parameters1));
    assertTrue(genericMethod1.isOverloaded(parameters2));
    assertTrue(genericMethod2.isOverloaded(parameters2));
}
Also used : ClassWithOverloadedMethods(com.examples.with.different.packagename.utils.generic.ClassWithOverloadedMethods) VariableReference(org.evosuite.testcase.variable.VariableReference) DefaultTestCase(org.evosuite.testcase.DefaultTestCase) TestCase(org.evosuite.testcase.TestCase) VariableReferenceImpl(org.evosuite.testcase.variable.VariableReferenceImpl) Method(java.lang.reflect.Method) DefaultTestCase(org.evosuite.testcase.DefaultTestCase) ConstantValue(org.evosuite.testcase.variable.ConstantValue) Test(org.junit.Test)

Example 3 with VariableReferenceImpl

use of org.evosuite.testcase.variable.VariableReferenceImpl in project evosuite by EvoSuite.

the class TestOverloading method testNotOverloadedConstructor.

@Test
public void testNotOverloadedConstructor() {
    Class<?> clazz = ClassWithoutOverloadedMethods.class;
    Constructor<?> constructor1 = clazz.getConstructors()[0];
    Constructor<?> constructor2 = clazz.getConstructors()[1];
    GenericConstructor genericConstructor1 = new GenericConstructor(constructor1, clazz);
    GenericConstructor genericConstructor2 = new GenericConstructor(constructor2, clazz);
    TestCase test = new DefaultTestCase();
    ConstantValue intValue = new ConstantValue(test, int.class);
    VariableReference stringVar = new VariableReferenceImpl(test, String.class);
    List<VariableReference> parameters1 = Arrays.asList(intValue);
    List<VariableReference> parameters2 = Arrays.asList(stringVar);
    assertFalse(genericConstructor1.isOverloaded(parameters1));
    assertFalse(genericConstructor2.isOverloaded(parameters2));
    assertFalse(genericConstructor1.isOverloaded(parameters2));
    assertFalse(genericConstructor2.isOverloaded(parameters1));
}
Also used : VariableReference(org.evosuite.testcase.variable.VariableReference) DefaultTestCase(org.evosuite.testcase.DefaultTestCase) TestCase(org.evosuite.testcase.TestCase) VariableReferenceImpl(org.evosuite.testcase.variable.VariableReferenceImpl) DefaultTestCase(org.evosuite.testcase.DefaultTestCase) ConstantValue(org.evosuite.testcase.variable.ConstantValue) ClassWithoutOverloadedMethods(com.examples.with.different.packagename.utils.generic.ClassWithoutOverloadedMethods) Test(org.junit.Test)

Example 4 with VariableReferenceImpl

use of org.evosuite.testcase.variable.VariableReferenceImpl in project evosuite by EvoSuite.

the class FunctionalMockStatementTest method testPackageLevel_differentPackage_instrumentation_public.

/*
     * This test fails when Mockito is instrumented (it would pass if org.mockito. is excluded from instrumentation.
     * However, in the packaged version, Mockito is shaded and thus isn't actually instrumented. I don't have a good
     * solution to fix this test, hence I've marked it as ignored. (Gordon, 9.2.2018)
     */
@Test
public void testPackageLevel_differentPackage_instrumentation_public() throws Exception {
    TestCase tc = new DefaultTestCase();
    RuntimeInstrumentation.setAvoidInstrumentingShadedClasses(true);
    ClassPathHandler.getInstance().changeTargetCPtoTheSameAsEvoSuite();
    InstrumentingClassLoader loader = new InstrumentingClassLoader();
    Class<?> example = loader.loadClass("com.examples.with.different.packagename.fm.ExamplePublicLevel");
    VariableReference ref = new VariableReferenceImpl(tc, example);
    FunctionalMockStatement mockStmt = new FunctionalMockStatement(tc, ref, example);
    tc.addStatement(mockStmt);
    execute(tc);
}
Also used : VariableReference(org.evosuite.testcase.variable.VariableReference) TestCase(org.evosuite.testcase.TestCase) DefaultTestCase(org.evosuite.testcase.DefaultTestCase) VariableReferenceImpl(org.evosuite.testcase.variable.VariableReferenceImpl) DefaultTestCase(org.evosuite.testcase.DefaultTestCase) NonInstrumentingClassLoader(org.evosuite.instrumentation.NonInstrumentingClassLoader) InstrumentingClassLoader(org.evosuite.instrumentation.InstrumentingClassLoader) Test(org.junit.Test)

Example 5 with VariableReferenceImpl

use of org.evosuite.testcase.variable.VariableReferenceImpl in project evosuite by EvoSuite.

the class FunctionalMockStatementTest method testAll_once.

@Test
public void testAll_once() throws Exception {
    TestCase tc = new DefaultTestCase();
    VariableReference ref = new VariableReferenceImpl(tc, Foo.class);
    FunctionalMockStatement mockStmt = new FunctionalMockStatement(tc, ref, Foo.class);
    VariableReference mock = tc.addStatement(mockStmt);
    VariableReference result = tc.addStatement(new MethodStatement(tc, new GenericMethod(this.getClass().getDeclaredMethod("all_once", Foo.class), FunctionalMockStatementTest.class), null, Arrays.asList(mock)));
    Assert.assertFalse(mockStmt.doesNeedToUpdateInputs());
    Assert.assertEquals(0, mockStmt.getNumParameters());
    // execute first time with default mock
    Scope scope = execute(tc);
    Assert.assertTrue(mockStmt.doesNeedToUpdateInputs());
    List<Type> types = mockStmt.updateMockedMethods();
    Assert.assertEquals(7, types.size());
}
Also used : Type(java.lang.reflect.Type) VariableReference(org.evosuite.testcase.variable.VariableReference) Scope(org.evosuite.testcase.execution.Scope) TestCase(org.evosuite.testcase.TestCase) DefaultTestCase(org.evosuite.testcase.DefaultTestCase) VariableReferenceImpl(org.evosuite.testcase.variable.VariableReferenceImpl) DefaultTestCase(org.evosuite.testcase.DefaultTestCase) GenericMethod(org.evosuite.utils.generic.GenericMethod) Test(org.junit.Test)

Aggregations

VariableReference (org.evosuite.testcase.variable.VariableReference)15 VariableReferenceImpl (org.evosuite.testcase.variable.VariableReferenceImpl)15 TestCase (org.evosuite.testcase.TestCase)14 DefaultTestCase (org.evosuite.testcase.DefaultTestCase)13 Test (org.junit.Test)13 GenericMethod (org.evosuite.utils.generic.GenericMethod)5 Type (java.lang.reflect.Type)4 ConstantValue (org.evosuite.testcase.variable.ConstantValue)4 Method (java.lang.reflect.Method)3 NonInstrumentingClassLoader (org.evosuite.instrumentation.NonInstrumentingClassLoader)3 Scope (org.evosuite.testcase.execution.Scope)3 ClassWithOverloadedMethods (com.examples.with.different.packagename.utils.generic.ClassWithOverloadedMethods)2 ClassWithoutOverloadedMethods (com.examples.with.different.packagename.utils.generic.ClassWithoutOverloadedMethods)2 InstrumentingClassLoader (org.evosuite.instrumentation.InstrumentingClassLoader)2 BooleanPrimitiveStatement (org.evosuite.testcase.statements.numeric.BooleanPrimitiveStatement)2 IntPrimitiveStatement (org.evosuite.testcase.statements.numeric.IntPrimitiveStatement)2 EqualsAssertion (org.evosuite.assertion.EqualsAssertion)1 MethodStatement (org.evosuite.testcase.statements.MethodStatement)1 PrimitiveExpression (org.evosuite.testcase.statements.PrimitiveExpression)1 Statement (org.evosuite.testcase.statements.Statement)1