1 package jester.tests; 2 3 import jester.*; 4 import junit.framework.*; 5 6 public class ClassTestTesterTest extends TestCase { 7 public ClassTestTesterTest(String name) { 8 super(name); 9 } 10 public static void main(String args[]) { 11 junit.awtui.TestRunner.main(new String [] { "jester.tests.ClassTestTesterTest" }); 12 } 13 public static Test suite() { 14 TestSuite suite = new TestSuite(ClassTestTesterTest.class); 15 return suite; 16 } 17 public void testThatChangeThatFailsTestsIsNotRecorded() throws SourceChangeException { 18 MockTestRunner mockTestRunner = new MockTestRunner(); 19 mockTestRunner.setTestsRunWithoutFailures(false); 20 21 MockClassSourceChanger mockClassSourceCodeChanger = new MockClassSourceChanger(); 22 mockClassSourceCodeChanger.setOriginalContents("includes 1 thing that will be changed"); 23 mockClassSourceCodeChanger.setExpectedWriteOverSourceReplacing(9, "1", "2"); 24 mockClassSourceCodeChanger.setExpectedWriteOverSourceReplacingCalls(1); 25 mockClassSourceCodeChanger.setExpectedWriteOriginalBackCalls(1); 26 mockClassSourceCodeChanger.setExpectedStartJestingCalls(1); 27 mockClassSourceCodeChanger.setExpectedFinishJestingCalls(1); 28 29 mockClassSourceCodeChanger.setExpectedLastChangeDidNotCauseTestsToFailCalls(0); 30 mockClassSourceCodeChanger.setExpectedLastChangeCausedTestsToFailCalls(1); 31 32 ClassTestTester classTestTester = newRealClassTestTester(mockTestRunner); 33 34 classTestTester.testUsing(mockClassSourceCodeChanger); 35 36 mockClassSourceCodeChanger.verify(); 37 } 38 public void testThatChangeThatPassesTestsIsRecorded() throws SourceChangeException { 39 MockTestRunner mockTestRunner = new MockTestRunner(); 40 mockTestRunner.setTestsRunWithoutFailures(true); 41 42 MockClassSourceChanger mockClassSourceCodeChanger = new MockClassSourceChanger(); 43 mockClassSourceCodeChanger.setOriginalContents("includes 1 thing that will be changed"); 44 mockClassSourceCodeChanger.setExpectedWriteOverSourceReplacing(9, "1", "2"); 45 mockClassSourceCodeChanger.setExpectedWriteOverSourceReplacingCalls(1); 46 mockClassSourceCodeChanger.setExpectedWriteOriginalBackCalls(1); 47 mockClassSourceCodeChanger.setExpectedStartJestingCalls(1); 48 mockClassSourceCodeChanger.setExpectedFinishJestingCalls(1); 49 50 mockClassSourceCodeChanger.setExpectedLastChangeDidNotCauseTestsToFailCalls(1); 51 mockClassSourceCodeChanger.setExpectedLastChangeCausedTestsToFailCalls(0); 52 53 ClassTestTester classTestTester = newRealClassTestTester(mockTestRunner); 54 55 classTestTester.testUsing(mockClassSourceCodeChanger); 56 57 mockClassSourceCodeChanger.verify(); 58 } 59 public void testThatOriginalContentsAreNotWrittenBackIfNoChanges() throws SourceChangeException { 60 MockTestRunner mockTestRunner = new MockTestRunner(); 61 62 MockClassSourceChanger mockClassSourceCodeChanger = new MockClassSourceChanger(); 63 mockClassSourceCodeChanger.setOriginalContents("includes nothing that will be changed"); 64 mockClassSourceCodeChanger.setExpectedWriteOverSourceReplacingCalls(0); 65 mockClassSourceCodeChanger.setExpectedWriteOriginalBackCalls(0); 66 mockClassSourceCodeChanger.setExpectedStartJestingCalls(1); 67 mockClassSourceCodeChanger.setExpectedFinishJestingCalls(1); 68 69 mockClassSourceCodeChanger.setExpectedLastChangeDidNotCauseTestsToFailCalls(0); 70 mockClassSourceCodeChanger.setExpectedLastChangeCausedTestsToFailCalls(0); 71 72 ClassTestTester classTestTester = newRealClassTestTester(mockTestRunner); 73 74 classTestTester.testUsing(mockClassSourceCodeChanger); 75 76 mockClassSourceCodeChanger.verify(); 77 } 78 public void testThatOriginalContentsAreWrittenBack() throws SourceChangeException { 79 MockTestRunner mockTestRunner = new MockTestRunner(); 80 81 MockClassSourceChanger mockClassSourceCodeChanger = new MockClassSourceChanger(); 82 mockClassSourceCodeChanger.setOriginalContents("includes 1 thing that will be changed"); 83 mockClassSourceCodeChanger.setExpectedWriteOverSourceReplacing(9, "1", "2"); 84 mockClassSourceCodeChanger.setExpectedWriteOverSourceReplacingCalls(1); 85 mockClassSourceCodeChanger.setExpectedWriteOriginalBackCalls(1); 86 mockClassSourceCodeChanger.setExpectedStartJestingCalls(1); 87 mockClassSourceCodeChanger.setExpectedFinishJestingCalls(1); 88 89 mockClassSourceCodeChanger.setExpectedLastChangeDidNotCauseTestsToFailCalls(0); 90 mockClassSourceCodeChanger.setExpectedLastChangeCausedTestsToFailCalls(1); 91 92 ClassTestTester classTestTester = newRealClassTestTester(mockTestRunner); 93 94 classTestTester.testUsing(mockClassSourceCodeChanger); 95 96 mockClassSourceCodeChanger.verify(); 97 } 98 99 private ClassTestTester newRealClassTestTester(TestRunner aTestRunner) { 100 MutationsList aMutationsList = new MockMutationsList(); 101 return new RealClassTestTester(aTestRunner, aMutationsList); 102 } 103 104 public void testThatMutationListIsUsed() throws SourceChangeException { 105 MockTestRunner mockTestRunner = new MockTestRunner(); 106 107 MockClassSourceChanger mockClassSourceCodeChanger = new MockClassSourceChanger(); 108 mockClassSourceCodeChanger.setOriginalContents("includes nothing that will be changed"); 109 110 MockMutationsList aMockMutationsList = new MockMutationsList(); 111 aMockMutationsList.setExpectedVisitCalls(1); 112 113 ClassTestTester classTestTester = new RealClassTestTester(mockTestRunner, aMockMutationsList); 114 115 classTestTester.testUsing(mockClassSourceCodeChanger); 116 117 aMockMutationsList.verify(); 118 } 119 } | Popular Tags |