1 /* Copyright (c) 2000-2003, jMock.org. See bundled LICENSE.txt */ 2 package org.jmock.expectation; 3 4 import junit.framework.AssertionFailedError; 5 import org.jmock.AbstractTestCase; 6 7 public class TestVerifier extends AbstractTestCase { 8 9 class OneVerifiable extends MockObject { 10 private ExpectationValue myValue = new ExpectationValue("should fail"); 11 private int unusedField; 12 13 public OneVerifiable() { 14 myValue.setFailOnVerify(); 15 myValue.setExpected("good"); 16 } 17 18 public void setValue(String aValue) { 19 myValue.setActual(aValue); 20 } 21 } 22 23 class InheritVerifiable extends OneVerifiable { 24 } 25 26 class LoopingVerifiable extends MockObject { 27 LoopingVerifiable myRef = this; 28 boolean inVerify = false; 29 30 LoopingVerifiable() { 31 super(); 32 } 33 34 public void setRef(LoopingVerifiable aRef) { 35 myRef = aRef; 36 } 37 38 public void verify() { 39 assertTrue("Looping verification detected", !inVerify); 40 inVerify = true; 41 super.verify(); 42 inVerify = false; 43 } 44 } 45 46 public void testInheritVerifiableFails() { 47 InheritVerifiable inheritVerifiable = new InheritVerifiable(); 48 inheritVerifiable.setValue("bad"); 49 50 boolean hasThrownException = false; 51 try { 52 inheritVerifiable.verify(); 53 } catch (AssertionFailedError ex) { 54 hasThrownException = true; 55 } 56 assertTrue("Should have thrown exception", hasThrownException); 57 } 58 59 60 public void testInheritVerifiablePasses() { 61 InheritVerifiable inheritVerifiable = new InheritVerifiable(); 62 inheritVerifiable.setValue("good"); 63 64 inheritVerifiable.verify(); 65 } 66 67 68 public void testNoVerifiables() { 69 class NoVerifiables extends MockObject { 70 } 71 72 new NoVerifiables().verify(); 73 } 74 75 76 public void testOneVerifiableFails() { 77 OneVerifiable oneVerifiable = new OneVerifiable(); 78 oneVerifiable.setValue("bad"); 79 80 boolean hasThrownException = false; 81 try { 82 oneVerifiable.verify(); 83 } catch (AssertionFailedError ex) { 84 hasThrownException = true; 85 } 86 assertTrue("Should have thrown exception", hasThrownException); 87 } 88 89 90 public void testOneVerifiablePasses() { 91 OneVerifiable oneVerifiable = new OneVerifiable(); 92 oneVerifiable.setValue("good"); 93 94 oneVerifiable.verify(); 95 } 96 97 public void testNoLoopVerifySingleLevel() { 98 new LoopingVerifiable().verify(); 99 } 100 101 public void testNoLoopVerifyMultiLevel() { 102 LoopingVerifiable a = new LoopingVerifiable(); 103 LoopingVerifiable b = new LoopingVerifiable(); 104 105 a.setRef(b); 106 b.setRef(a); 107 a.verify(); 108 } 109 }

This page was automatically generated by Maven