1 package jester.tests; 2 3 import jester.*; 4 import junit.framework.Assert; 5 6 public class MockClassSourceChanger implements ClassSourceCodeChanger { 7 private IgnoreListDocument originalContents; 8 private boolean throwExceptionOnFirstChangeAttempt = false; 9 10 private int expectedIndex; 11 private String expectedOldContents; 12 private String expectedNewContents; 13 14 private int actualWriteOverSourceReplacingCalls = 0; 15 private int expectedWriteOverSourceReplacingCalls = 0; 16 17 private int actualWriteOriginalBackCalls = 0; 18 private int expectedWriteOriginalBackCalls = 0; 19 20 private int actualReportLastChangeCalls = 0; 21 private int expectedReportLastChangeCalls = 0; 22 private int expectedLastChangeCausedTestsToFailCalls = 0; 23 private int actualLastChangeCausedTestsToFailCalls = 0; 24 public MockClassSourceChanger() { 25 super(); 26 } 27 public IgnoreListDocument getOriginalContents() { 28 return originalContents; 29 } 30 31 public void setExpectedLastChangeCausedTestsToFailCalls(int calls) { 32 expectedLastChangeCausedTestsToFailCalls = calls; 33 } 34 public void setExpectedLastChangeDidNotCauseTestsToFailCalls(int calls) { 35 expectedReportLastChangeCalls = calls; 36 } 37 public void setExpectedWriteOriginalBackCalls(int calls) { 38 expectedWriteOriginalBackCalls = calls; 39 } 40 public void setExpectedWriteOverSourceReplacing(int index, String oldContents, String newContents) { 41 expectedIndex = index; 42 expectedOldContents = oldContents; 43 expectedNewContents = newContents; 44 } 45 public void setExpectedWriteOverSourceReplacingCalls(int calls) { 46 expectedWriteOverSourceReplacingCalls = calls; 47 } 48 public void setOriginalContents(IgnoreListDocument contents) { 49 originalContents = contents; 50 } 51 public void setOriginalContents(String contents){ 52 setOriginalContents(contents, new IgnoreList("")); 53 } 54 public void setOriginalContents(String contents, IgnoreList anIgnoreList) { 55 try { 56 originalContents = new IgnoreListDocument(contents, anIgnoreList); 57 } catch (ConfigurationException e) { 58 throw new RuntimeException ("test setup failed doing MockClassSourceChanger.setOriginalContents"); 59 } 60 } 61 public void setThrowExceptionOnFirstChangeAttempt(boolean throwExceptionOnFirstChangeAttempt) { 62 this.throwExceptionOnFirstChangeAttempt = throwExceptionOnFirstChangeAttempt; 63 } 64 public void verify() { 65 Assert.assertEquals("WriteOverSourceReplacingCalls", expectedWriteOverSourceReplacingCalls, actualWriteOverSourceReplacingCalls); 66 Assert.assertEquals("WriteOriginalBackCalls", expectedWriteOriginalBackCalls, actualWriteOriginalBackCalls); 67 Assert.assertEquals("ReportLastChangeCalls", expectedReportLastChangeCalls, actualReportLastChangeCalls); 68 Assert.assertEquals("ReportLastChangeCalls", expectedLastChangeCausedTestsToFailCalls, actualLastChangeCausedTestsToFailCalls); 69 Assert.assertEquals("StartJestingCalls", expectedStartJestingCalls, actualStartJestingCalls); 70 Assert.assertEquals("FinishJestingCalls", expectedFinishJestingCalls, actualFinishJestingCalls); 71 } 72 public void writeOriginalContentsBack() { 73 actualWriteOriginalBackCalls++; 74 } 75 public void writeOverSourceReplacing(int index, String oldContents, String newContents) throws SourceChangeException { 76 actualWriteOverSourceReplacingCalls++; 77 if (throwExceptionOnFirstChangeAttempt) { 78 throwExceptionOnFirstChangeAttempt = false; 79 throw new SourceChangeException("mock threw exception"); 80 } 81 Assert.assertEquals(expectedIndex, index); 82 Assert.assertEquals(expectedOldContents, oldContents); 83 Assert.assertEquals(expectedNewContents, newContents); 84 } 85 86 private int actualFinishJestingCalls = 0; 87 private int actualStartJestingCalls = 0; 88 private int expectedFinishJestingCalls = 0; 89 private int expectedStartJestingCalls = 0; 90 91 public void finishJesting() { 92 actualFinishJestingCalls++; 93 } 94 95 public void lastChangeCausedTestsToFail() { 96 actualLastChangeCausedTestsToFailCalls++; 97 } 98 99 public void lastChangeDidNotCauseTestsToFail() { 100 actualReportLastChangeCalls++; 101 } 102 103 public void setExpectedFinishJestingCalls(int calls) { 104 expectedFinishJestingCalls = calls; 105 } 106 107 public void setExpectedStartJestingCalls(int calls) { 108 expectedStartJestingCalls = calls; 109 } 110 111 public void startJesting() { 112 actualStartJestingCalls++; 113 } 114 } | Popular Tags |