1 37 package net.sourceforge.cruisecontrol.publishers; 38 39 import net.sourceforge.cruisecontrol.CruiseControlException; 40 import net.sourceforge.cruisecontrol.Publisher; 41 42 import org.jdom.Element; 43 44 import junit.framework.TestCase; 45 46 public abstract class ConditionalPublisherTestBase extends TestCase { 47 48 abstract ConditionalPublisher createPublisher(); 49 50 public void testValidate() throws CruiseControlException { 51 ConditionalPublisher publisher = createPublisher(); 52 try { 53 publisher.validate(); 54 fail("conditional publishers should not validate if they have no nested publishers"); 55 } catch (CruiseControlException expected) { 56 } 57 58 MyMockPublisher mock = new MyMockPublisher(); 59 publisher.add(mock); 60 publisher.validate(); 61 assertTrue(mock.wasValidated()); 62 } 63 64 class MyMockPublisher implements Publisher { 65 private boolean validated = false; 66 private boolean published = false; 67 68 boolean wasValidated() { 69 return validated; 70 } 71 72 void setPublished(boolean published) { 73 this.published = published; 74 } 75 76 boolean wasPublished() { 77 return published; 78 } 79 80 public void validate() throws CruiseControlException { 81 validated = true; 82 } 83 84 public void publish(Element cruisecontrolLog) throws CruiseControlException { 85 published = true; 86 } 87 } 88 89 } 90 | Popular Tags |