158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotpackage junit.extensions; 258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot 358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotimport junit.framework.Protectable; 458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotimport junit.framework.Test; 558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotimport junit.framework.TestResult; 658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot 758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot/** 858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * A Decorator to set up and tear down additional fixture state. 958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * Subclass TestSetup and insert it into your tests when you want 1058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * to set up additional state once before the tests are run. 1158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot */ 1258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabotpublic class TestSetup extends TestDecorator { 1358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot 1458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot public TestSetup(Test test) { 1558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot super(test); 1658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot } 1758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot public void run(final TestResult result) { 1858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot Protectable p= new Protectable() { 1958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot public void protect() throws Exception { 2058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot setUp(); 2158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot basicRun(result); 2258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot tearDown(); 2358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot } 2458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot }; 2558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot result.runProtected(this, p); 2658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot } 2758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot /** 2858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * Sets up the fixture. Override to set up additional fixture 2958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * state. 3058a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot */ 3158a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot protected void setUp() throws Exception { 3258a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot } 3358a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot /** 3458a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * Tears down the fixture. Override to tear down the additional 3558a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot * fixture state. 3658a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot */ 3758a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot protected void tearDown() throws Exception { 3858a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot } 3958a8b0aba2dec5695628a2bf25a3fae42c2c3533Brett Chabot}