Search in sources :

Example 1 with TestSelector

use of eu.stamp_project.dspot.selector.TestSelector in project dspot by STAMP-project.

the class ProjectJSONTest method test.

@Test
public void test() throws Exception {
    final File file = new File(outputDirectory + "/sample.json");
    if (file.exists()) {
        file.delete();
    }
    final InputAmplDistributor inputAmplDistributor = InputAmplDistributorEnum.RandomInputAmplDistributor.getInputAmplDistributor(200, Collections.emptyList());
    DSpotState dspotState = new DSpotState();
    dspotState.setDelta(0.1f);
    dspotState.setTestFinder(TestFinder.get());
    dspotState.setCompiler(compiler);
    dspotState.setTestSelector(testSelector);
    dspotState.setInputAmplDistributor(inputAmplDistributor);
    dspotState.setOutput(Output.get(configuration));
    dspotState.setNbIteration(1);
    dspotState.setAutomaticBuilder(builder);
    dspotState.setTestCompiler(testCompiler);
    dspotState.setTestClassesToBeAmplified(Collections.singletonList(findClass("fr.inria.amp.TestJavaPoet")));
    dspotState.setAssertionGenerator(new AssertionGenerator(0.1f, compiler, testCompiler));
    DSpot dspot = new DSpot(dspotState);
    final CtClass<?> clone = findClass("fr.inria.amp.TestJavaPoet").clone();
    dspot.run();
    ProjectTimeJSON projectJson = getProjectJson(file);
    assertTrue(projectJson.classTimes.stream().anyMatch(classTimeJSON -> "fr.inria.amp.TestJavaPoet".equals(classTimeJSON.fullQualifiedName)));
    assertEquals(1, projectJson.classTimes.size());
    assertEquals("sample", projectJson.projectName);
    dspotState.setTestClassesToBeAmplified(Collections.singletonList(findClass("fr.inria.mutation.ClassUnderTestTest")));
    dspot.run();
    projectJson = getProjectJson(file);
    assertTrue(projectJson.classTimes.stream().anyMatch(classTimeJSON -> classTimeJSON.fullQualifiedName.equals("fr.inria.amp.TestJavaPoet")));
    assertTrue(projectJson.classTimes.stream().anyMatch(classTimeJSON -> classTimeJSON.fullQualifiedName.equals("fr.inria.mutation.ClassUnderTestTest")));
    assertEquals(2, projectJson.classTimes.size());
    assertEquals("sample", projectJson.projectName);
    /* we reinitialize the factory to remove the amplified test class */
    final CtClass<?> amplifiedClassToBeRemoved = findClass("fr.inria.amp.TestJavaPoet");
    final CtPackage aPackage = amplifiedClassToBeRemoved.getPackage();
    aPackage.removeType(amplifiedClassToBeRemoved);
    aPackage.addType(clone);
    dspotState.setTestClassesToBeAmplified(Collections.singletonList(findClass("fr.inria.amp.TestJavaPoet")));
    dspot.run();
    projectJson = getProjectJson(file);
    assertTrue(projectJson.classTimes.stream().anyMatch(classTimeJSON -> classTimeJSON.fullQualifiedName.equals("fr.inria.amp.TestJavaPoet")));
    assertTrue(projectJson.classTimes.stream().anyMatch(classTimeJSON -> classTimeJSON.fullQualifiedName.equals("fr.inria.mutation.ClassUnderTestTest")));
    assertEquals(2, projectJson.classTimes.size());
    assertEquals("sample", projectJson.projectName);
}
Also used : RandomHelper(eu.stamp_project.dspot.amplifier.amplifiers.utils.RandomHelper) AutomaticBuilderEnum(eu.stamp_project.dspot.common.configuration.options.AutomaticBuilderEnum) Launcher(spoon.Launcher) DSpotCompiler(eu.stamp_project.dspot.common.compilation.DSpotCompiler) TestFramework(eu.stamp_project.dspot.common.test_framework.TestFramework) AssertionGeneratorUtils(eu.stamp_project.dspot.assertiongenerator.assertiongenerator.AssertionGeneratorUtils) InputAmplDistributorEnum(eu.stamp_project.dspot.common.configuration.options.InputAmplDistributorEnum) CtPackage(spoon.reflect.declaration.CtPackage) GsonBuilder(com.google.gson.GsonBuilder) DSpotUtils(eu.stamp_project.dspot.common.miscellaneous.DSpotUtils) Gson(com.google.gson.Gson) AutomaticBuilder(eu.stamp_project.dspot.common.automaticbuilder.AutomaticBuilder) InputAmplDistributor(eu.stamp_project.dspot.amplifier.InputAmplDistributor) UserInput(eu.stamp_project.dspot.common.configuration.UserInput) DSpotPOMCreator(eu.stamp_project.dspot.common.automaticbuilder.maven.DSpotPOMCreator) AssertionGenerator(eu.stamp_project.dspot.assertiongenerator.AssertionGenerator) Before(org.junit.Before) ProjectTimeJSON(eu.stamp_project.dspot.common.report.output.json.ProjectTimeJSON) JacocoCoverageSelector(eu.stamp_project.dspot.selector.JacocoCoverageSelector) Assert.assertTrue(org.junit.Assert.assertTrue) FileUtils(org.apache.commons.io.FileUtils) Test(org.junit.Test) ValueCreator(eu.stamp_project.dspot.amplifier.amplifiers.value.ValueCreator) TestCompiler(eu.stamp_project.dspot.common.compilation.TestCompiler) DSpotState(eu.stamp_project.dspot.common.configuration.DSpotState) Factory(spoon.reflect.factory.Factory) CommentEnum(eu.stamp_project.dspot.common.configuration.options.CommentEnum) TestFinder(eu.stamp_project.dspot.common.configuration.test_finder.TestFinder) TestSelector(eu.stamp_project.dspot.selector.TestSelector) java.io(java.io) Output(eu.stamp_project.dspot.common.report.output.Output) CtClass(spoon.reflect.declaration.CtClass) AmplificationHelper(eu.stamp_project.dspot.common.miscellaneous.AmplificationHelper) DSpotCache(eu.stamp_project.dspot.common.configuration.DSpotCache) InitializeDSpot(eu.stamp_project.dspot.common.configuration.InitializeDSpot) Collections(java.util.Collections) Assert.assertEquals(org.junit.Assert.assertEquals) InputAmplDistributor(eu.stamp_project.dspot.amplifier.InputAmplDistributor) InitializeDSpot(eu.stamp_project.dspot.common.configuration.InitializeDSpot) AssertionGenerator(eu.stamp_project.dspot.assertiongenerator.AssertionGenerator) ProjectTimeJSON(eu.stamp_project.dspot.common.report.output.json.ProjectTimeJSON) DSpotState(eu.stamp_project.dspot.common.configuration.DSpotState) CtPackage(spoon.reflect.declaration.CtPackage) Test(org.junit.Test)

Aggregations

Gson (com.google.gson.Gson)1 GsonBuilder (com.google.gson.GsonBuilder)1 InputAmplDistributor (eu.stamp_project.dspot.amplifier.InputAmplDistributor)1 RandomHelper (eu.stamp_project.dspot.amplifier.amplifiers.utils.RandomHelper)1 ValueCreator (eu.stamp_project.dspot.amplifier.amplifiers.value.ValueCreator)1 AssertionGenerator (eu.stamp_project.dspot.assertiongenerator.AssertionGenerator)1 AssertionGeneratorUtils (eu.stamp_project.dspot.assertiongenerator.assertiongenerator.AssertionGeneratorUtils)1 AutomaticBuilder (eu.stamp_project.dspot.common.automaticbuilder.AutomaticBuilder)1 DSpotPOMCreator (eu.stamp_project.dspot.common.automaticbuilder.maven.DSpotPOMCreator)1 DSpotCompiler (eu.stamp_project.dspot.common.compilation.DSpotCompiler)1 TestCompiler (eu.stamp_project.dspot.common.compilation.TestCompiler)1 DSpotCache (eu.stamp_project.dspot.common.configuration.DSpotCache)1 DSpotState (eu.stamp_project.dspot.common.configuration.DSpotState)1 InitializeDSpot (eu.stamp_project.dspot.common.configuration.InitializeDSpot)1 UserInput (eu.stamp_project.dspot.common.configuration.UserInput)1 AutomaticBuilderEnum (eu.stamp_project.dspot.common.configuration.options.AutomaticBuilderEnum)1 CommentEnum (eu.stamp_project.dspot.common.configuration.options.CommentEnum)1 InputAmplDistributorEnum (eu.stamp_project.dspot.common.configuration.options.InputAmplDistributorEnum)1 TestFinder (eu.stamp_project.dspot.common.configuration.test_finder.TestFinder)1 AmplificationHelper (eu.stamp_project.dspot.common.miscellaneous.AmplificationHelper)1