KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jester > tests > SimpleIntCodeManglerTest


1 package jester.tests;
2
3 import jester.*;
4 import junit.framework.*;
5
6 public class SimpleIntCodeManglerTest extends TestCase {
7     public SimpleIntCodeManglerTest(String JavaDoc name) {
8         super(name);
9     }
10     public static void main(String JavaDoc args[]) {
11         junit.awtui.TestRunner.main(new String JavaDoc[] { "jester.tests.SimpleIntCodeManglerTest" });
12     }
13     public static Test suite() {
14         TestSuite suite = new TestSuite(SimpleIntCodeManglerTest.class);
15         return suite;
16     }
17     public void testContinuesIfChangeFails() throws SourceChangeException {
18         MockClassSourceChanger mockClassSourceChanger = new MockClassSourceChanger();
19         mockClassSourceChanger.setThrowExceptionOnFirstChangeAttempt(true);
20         mockClassSourceChanger.setOriginalContents("abc 3 jshf 8 def");
21
22         CodeMangler codeMangler = new SimpleIntCodeMangler(mockClassSourceChanger);
23
24         mockClassSourceChanger.setExpectedWriteOverSourceReplacingCalls(2); //first one values are ignored
25
mockClassSourceChanger.setExpectedWriteOverSourceReplacing("abc 3 jshf ".length(), "8", "9");
26         assertTrue("could make change of 8 to 9 (can't change 3 to 4)", codeMangler.makeChangeToClass());
27         mockClassSourceChanger.setExpectedWriteOriginalBackCalls(1);
28         assertTrue("could not make a subsequent change", !codeMangler.makeChangeToClass());
29
30         mockClassSourceChanger.verify();
31     }
32     public void testContinuesIfChangeSucceeds() throws SourceChangeException {
33         MockClassSourceChanger mockClassSourceChanger = new MockClassSourceChanger();
34         mockClassSourceChanger.setThrowExceptionOnFirstChangeAttempt(false);
35         mockClassSourceChanger.setOriginalContents("abc 3 jshf 8 def");
36
37         CodeMangler codeMangler = new SimpleIntCodeMangler(mockClassSourceChanger);
38
39         mockClassSourceChanger.setExpectedWriteOverSourceReplacingCalls(2);
40         mockClassSourceChanger.setExpectedWriteOverSourceReplacing("abd ".length(), "3", "4");
41         assertTrue("could make change of 3 to 4", codeMangler.makeChangeToClass());
42         mockClassSourceChanger.setExpectedWriteOverSourceReplacing("abc 3 jshf ".length(), "8", "9");
43         assertTrue("could make another change", codeMangler.makeChangeToClass());
44         mockClassSourceChanger.setExpectedWriteOriginalBackCalls(1);
45         assertTrue("could not make another change", !codeMangler.makeChangeToClass());
46
47         mockClassSourceChanger.verify();
48     }
49     public void testCouldntMangle() throws SourceChangeException {
50         MockClassSourceChanger mockClassSourceChanger = new MockClassSourceChanger();
51         mockClassSourceChanger.setOriginalContents("abc def");
52         mockClassSourceChanger.setExpectedWriteOverSourceReplacingCalls(0);
53
54         CodeMangler codeMangler = new SimpleIntCodeMangler(mockClassSourceChanger);
55
56         assertTrue("couldn't make change - mock checks didnt try to make any change", !codeMangler.makeChangeToClass());
57
58         mockClassSourceChanger.verify();
59     }
60     public void testDoesntTryToChangeBadlyNamedMethodCalls() throws SourceChangeException {
61         MockClassSourceChanger mockClassSourceChanger = new MockClassSourceChanger();
62         mockClassSourceChanger.setOriginalContents("abc method3 def");
63         mockClassSourceChanger.setExpectedWriteOverSourceReplacingCalls(0);
64
65         CodeMangler codeMangler = new SimpleIntCodeMangler(mockClassSourceChanger);
66
67         assertTrue("couldn't make change - mock checks didnt try to make any change", !codeMangler.makeChangeToClass());
68
69         mockClassSourceChanger.verify();
70     }
71     public void testSimpleMangle() throws SourceChangeException {
72         MockClassSourceChanger mockClassSourceChanger = new MockClassSourceChanger();
73         mockClassSourceChanger.setOriginalContents("abc 1 def");
74         mockClassSourceChanger.setExpectedWriteOverSourceReplacing(4, "1", "2");
75
76         CodeMangler codeMangler = new SimpleIntCodeMangler(mockClassSourceChanger);
77
78         assertTrue("could make change - mock checks make expected change", codeMangler.makeChangeToClass());
79     }
80     public void testBug955882() throws SourceChangeException {
81         MockClassSourceChanger mockClassSourceChanger = new MockClassSourceChanger();
82         mockClassSourceChanger.setOriginalContents("int Log2(float n) { return Log(2,n); }");
83         mockClassSourceChanger.setExpectedWriteOverSourceReplacing(31, "2", "3");
84
85         CodeMangler codeMangler = new SimpleIntCodeMangler(mockClassSourceChanger);
86
87         assertTrue("could make change - mock checks make expected change", codeMangler.makeChangeToClass());
88     }
89     public void testBugIgnoreRegionsNotBeingIgnored() throws SourceChangeException {
90         MockClassSourceChanger mockClassSourceChanger = new MockClassSourceChanger();
91         mockClassSourceChanger.setOriginalContents("foo //1\n 1 bar", new IgnoreList("x//x\\n"));
92         mockClassSourceChanger.setExpectedWriteOverSourceReplacing(9, "1", "2");
93
94         CodeMangler codeMangler = new SimpleIntCodeMangler(mockClassSourceChanger);
95
96         assertTrue("could make change - mock checks make expected change", codeMangler.makeChangeToClass());
97     }
98     public void testSimpleMangleRollover() throws SourceChangeException {
99         MockClassSourceChanger mockClassSourceChanger = new MockClassSourceChanger();
100         mockClassSourceChanger.setOriginalContents("abc 9 def");
101         mockClassSourceChanger.setExpectedWriteOverSourceReplacing(4, "9", "0");
102
103         CodeMangler codeMangler = new SimpleIntCodeMangler(mockClassSourceChanger);
104
105         assertTrue("could make change - mock checks make expected change", codeMangler.makeChangeToClass());
106     }
107 }
Popular Tags