@Test public void testTwoMethodsOneWithException() { TestCase test = new DefaultTestCase(); MethodCoverageTestFitness goal1 = new MethodCoverageTestFitness("FooClass", "foo"); test.addCoveredGoal(goal1); MethodCoverageTestFitness goal2 = new MethodCoverageTestFitness("FooClass", "bar"); test.addCoveredGoal(goal2); ExceptionCoverageTestFitness goal3 = new ExceptionCoverageTestFitness("FooClass", "bar", RuntimeException.class, ExceptionCoverageTestFitness.ExceptionType.EXPLICIT); test.addCoveredGoal(goal3); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); String generatedName = naming.getName(test); assertEquals("testBarThrowsRuntimeException", generatedName); }
@Test public void testTwoUniqueMethods() { TestCase test = new DefaultTestCase(); MethodCoverageTestFitness goal1 = new MethodCoverageTestFitness("FooClass", "foo"); test.addCoveredGoal(goal1); MethodCoverageTestFitness goal2 = new MethodCoverageTestFitness("FooClass", "bar"); test.addCoveredGoal(goal2); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); String generatedName = naming.getName(test); assertEquals("testBarAndFoo", generatedName); }
@Test public void testTwoConstructorsDifferentClasses() { TestCase test = new DefaultTestCase(); MethodCoverageTestFitness goal1 = new MethodCoverageTestFitness("Foo", "<init>()"); test.addCoveredGoal(goal1); MethodCoverageTestFitness goal2 = new MethodCoverageTestFitness("Bar", "<init>()"); test.addCoveredGoal(goal2); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); String generatedName = naming.getName(test); assertEquals("testCreatesBarAndCreatesFoo", generatedName); }
@Test public void testTwoConstructorsSameClass() { TestCase test = new DefaultTestCase(); MethodCoverageTestFitness goal1 = new MethodCoverageTestFitness("FooClass", "<init>()"); test.addCoveredGoal(goal1); MethodCoverageTestFitness goal2 = new MethodCoverageTestFitness("FooClass", "<init>(I)"); test.addCoveredGoal(goal2); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); String generatedName = naming.getName(test); assertEquals("testCreatesFooClassTakingNoArgumentsAndCreatesFooClassTakingInt", generatedName); }
@Test public void testConstructorAndMethod() { TestCase test = new DefaultTestCase(); MethodCoverageTestFitness goal1 = new MethodCoverageTestFitness("Foo", "<init>()"); test.addCoveredGoal(goal1); MethodCoverageTestFitness goal2 = new MethodCoverageTestFitness("Foo", "bar()I"); test.addCoveredGoal(goal2); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); String generatedName = naming.getName(test); assertEquals("testCreatesFooAndCallsBar", generatedName); }
@Test public void testTwoUniqueMethodsWithLongNames() { TestCase test = new DefaultTestCase(); MethodCoverageTestFitness goal1 = new MethodCoverageTestFitness("FooClass", "loremIpsumDolorSitAmetConsectetuerAdipiscingElit()V"); test.addCoveredGoal(goal1); MethodCoverageTestFitness goal2 = new MethodCoverageTestFitness("FooClass", "sedDiamNonummNibhEuismodTinciduntUtLaoreetDoloreMagnaAliquamEratVolutpat()V"); test.addCoveredGoal(goal2); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); String generatedName = naming.getName(test); assertEquals("testLoremIpsumDolorSitAmetConsectetuerAdipiscingElit", generatedName); }
@Test public void testEmptyArray() { TestCase test = new DefaultTestCase(); OutputCoverageGoal outputGoal1 = new OutputCoverageGoal("FooClass", "foo", Type.getType("[Ljava.lang.Object;"), ARRAY_EMPTY); OutputCoverageTestFitness goal1 = new OutputCoverageTestFitness(outputGoal1); test.addCoveredGoal(goal1); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); assertEquals("testFooReturningEmptyArray", naming.getName(test)); }
@Test public void testNullOutputGoal() { TestCase test = new DefaultTestCase(); OutputCoverageGoal outputGoal1 = new OutputCoverageGoal("FooClass", "foo", Type.getType("Ljava.lang.Object;"), REF_NULL); OutputCoverageTestFitness goal1 = new OutputCoverageTestFitness(outputGoal1); test.addCoveredGoal(goal1); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); assertEquals("testFooReturningNull", naming.getName(test)); }
@Test public void testConstructorWithFullyQualifiedClassName() { TestCase test = new DefaultTestCase(); MethodCoverageTestFitness goal = new MethodCoverageTestFitness("org.package.name.FooClass", "<init>()"); test.addCoveredGoal(goal); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); String generatedName = naming.getName(test); assertEquals("testCreatesFooClass", generatedName); }
@Test public void testConstructorExceptionWithFullyQualifiedClassName() { TestCase test = new DefaultTestCase(); ExceptionCoverageTestFitness goal = new ExceptionCoverageTestFitness("org.package.name.FooClass", "<init>()", RuntimeException.class, ExceptionCoverageTestFitness.ExceptionType.EXPLICIT); test.addCoveredGoal(goal); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); String generatedName = naming.getName(test); assertEquals("testFailsToCreateFooClassThrowsRuntimeException", generatedName); }
@Test public void testUniqueMethod() { TestCase test = new DefaultTestCase(); MethodCoverageTestFitness goal = new MethodCoverageTestFitness("FooClass", "toString"); test.addCoveredGoal(goal); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); String generatedName = naming.getName(test); assertEquals("testToString", generatedName); }
@Test public void testUniqueConstructor() { TestCase test = new DefaultTestCase(); MethodCoverageTestFitness goal = new MethodCoverageTestFitness("FooClass", "<init>"); test.addCoveredGoal(goal); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); String generatedName = naming.getName(test); assertEquals("testCreatesFooClass", generatedName); }
@Test public void testNumericOutputGoal() { TestCase test = new DefaultTestCase(); OutputCoverageGoal outputGoal1 = new OutputCoverageGoal("FooClass", "foo", Type.INT_TYPE, NUM_POSITIVE); OutputCoverageTestFitness goal1 = new OutputCoverageTestFitness(outputGoal1); test.addCoveredGoal(goal1); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); assertEquals("testFooReturningPositive", naming.getName(test)); }
@Test public void testBooleanOutputGoal() { TestCase test = new DefaultTestCase(); OutputCoverageGoal outputGoal1 = new OutputCoverageGoal("FooClass", "foo", Type.BOOLEAN_TYPE, BOOL_TRUE); OutputCoverageTestFitness goal1 = new OutputCoverageTestFitness(outputGoal1); test.addCoveredGoal(goal1); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); assertEquals("testFooReturningTrue", naming.getName(test)); }
@Test public void testCharOutputGoal() { TestCase test = new DefaultTestCase(); OutputCoverageGoal outputGoal1 = new OutputCoverageGoal("FooClass", "foo", Type.CHAR_TYPE, CHAR_ALPHA); OutputCoverageTestFitness goal1 = new OutputCoverageTestFitness(outputGoal1); test.addCoveredGoal(goal1); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); assertEquals("testFooReturningAlphabeticChar", naming.getName(test)); }
@Test public void testTwoOutputGoals() { TestCase test = new DefaultTestCase(); OutputCoverageGoal outputGoal1 = new OutputCoverageGoal("FooClass", "toString", stringType(), STRING_EMPTY); OutputCoverageTestFitness goal1 = new OutputCoverageTestFitness(outputGoal1); OutputCoverageGoal outputGoal2 = new OutputCoverageGoal("FooClass", "bar", objectType(), REF_NONNULL); OutputCoverageTestFitness goal2 = new OutputCoverageTestFitness(outputGoal2); test.addCoveredGoal(goal1); test.addCoveredGoal(goal2); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); String generatedName = naming.getName(test); assertEquals("testBarReturningNonNullAndToStringReturningEmptyString", generatedName); }
@Test public void testStringOutputGoal() { TestCase test = new DefaultTestCase(); OutputCoverageGoal outputGoal1 = new OutputCoverageGoal("FooClass", "foo", stringType(), STRING_NONEMPTY); OutputCoverageTestFitness goal1 = new OutputCoverageTestFitness(outputGoal1); test.addCoveredGoal(goal1); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); assertEquals("testFooReturningNonEmptyString", naming.getName(test)); }
@Test public void testInspectorOutputGoal() { TestCase test = new DefaultTestCase(); OutputCoverageGoal outputGoal1 = new OutputCoverageGoal("FooClass", "foo", stringType(), REF_NONNULL + ":" + "Bar" + ":" + "isFoo" + ":" + NUM_NEGATIVE); OutputCoverageTestFitness goal1 = new OutputCoverageTestFitness(outputGoal1); test.addCoveredGoal(goal1); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); assertEquals("testFooReturningBarWhereIsFooIsNegative", naming.getName(test)); }
@Test public void testTwoInputGoals() { TestCase test = new DefaultTestCase(); InputCoverageGoal inputGoal1 = new InputCoverageGoal("FooClass", "foo", 0, objectType(), REF_NONNULL); InputCoverageTestFitness goal1 = new InputCoverageTestFitness(inputGoal1); InputCoverageGoal inputGoal2 = new InputCoverageGoal("FooClass", "foo", 1, objectType(), REF_NULL); InputCoverageTestFitness goal2 = new InputCoverageTestFitness(inputGoal2); test.addCoveredGoal(goal1); test.addCoveredGoal(goal2); List<TestCase> tests = new ArrayList<>(); tests.add(test); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); String generatedName = naming.getName(test); assertEquals("testFooWithNonNullAndNull", generatedName); }
@Test public void testTwoTestsUniqueMethods() { TestCase test1 = new DefaultTestCase(); MethodCoverageTestFitness goal1 = new MethodCoverageTestFitness("FooClass", "toString"); test1.addCoveredGoal(goal1); TestCase test2 = new DefaultTestCase(); test2.addStatement(new IntPrimitiveStatement(test2, 0)); // Need to add statements to change hashCode MethodCoverageTestFitness goal2 = new MethodCoverageTestFitness("FooClass", "getSomeStuff"); test2.addCoveredGoal(goal2); List<TestCase> tests = new ArrayList<>(); tests.add(test1); tests.add(test2); CoverageGoalTestNameGenerationStrategy naming = new CoverageGoalTestNameGenerationStrategy(tests); assertEquals("testToString", naming.getName(test1)); assertEquals("testGetSomeStuff", naming.getName(test2)); }