KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jester > RealClassTestTester


1 package jester;
2
3 public class RealClassTestTester implements ClassTestTester {
4     private MutationsList myMutationsList;
5     private TestRunner myTestRunner;
6
7     public RealClassTestTester(TestRunner testRunner, MutationsList aMutationsList) {
8         super();
9         myTestRunner = testRunner;
10         myMutationsList = aMutationsList;
11     }
12
13     private void test(CodeMangler codeMangler, ClassSourceCodeChanger sourceCodeSystem) throws SourceChangeException {
14         boolean madeChange = codeMangler.makeChangeToClass();
15         while (madeChange) {
16             boolean testsDidNotCatchChange = myTestRunner.testsRunWithoutFailures();
17             if (testsDidNotCatchChange) {
18                 sourceCodeSystem.lastChangeDidNotCauseTestsToFail();
19             } else {
20                 sourceCodeSystem.lastChangeCausedTestsToFail();
21             }
22             madeChange = codeMangler.makeChangeToClass();
23         }
24     }
25     
26     public void testUsing(final ClassSourceCodeChanger sourceCodeSystem) throws SourceChangeException {
27         sourceCodeSystem.startJesting();
28
29         CodeMangler aSimpleIntCodeMangler = new SimpleIntCodeMangler(sourceCodeSystem);
30         test(aSimpleIntCodeMangler, sourceCodeSystem);
31
32         MutationMaker aMutationMaker = new MutationMaker() {
33             public void mutate(String JavaDoc changeFrom1, String JavaDoc changeTo1) throws SourceChangeException {
34                 CodeMangler aSimpleCodeMangler = new TwoStringSwappingCodeMangler(sourceCodeSystem, changeFrom1, changeTo1);
35                 test(aSimpleCodeMangler, sourceCodeSystem);
36             }
37         };
38
39         myMutationsList.visit(aMutationMaker);
40
41         sourceCodeSystem.finishJesting();
42     }
43 }
Popular Tags