001/* 002 * $Id$ 003 */ 004 005package edu.jas.kern; 006 007 008import java.util.concurrent.Callable; 009 010import junit.framework.Test; 011import junit.framework.TestCase; 012import junit.framework.TestSuite; 013 014 015 016/** 017 * LocalTimeStatus tests with JUnit. 018 * @author Heinz Kredel 019 */ 020public class LocalTimeStatusTest extends TestCase { 021 022 023 /** 024 * main. 025 */ 026 public static void main(String[] args) { 027 junit.textui.TestRunner.run(suite()); 028 } 029 030 031 /** 032 * Constructs a <CODE>LocalTimeStatusTest</CODE> object. 033 * @param name String. 034 */ 035 public LocalTimeStatusTest(String name) { 036 super(name); 037 } 038 039 040 /* 041 */ 042 public static Test suite() { 043 TestSuite suite = new TestSuite(LocalTimeStatusTest.class); 044 return suite; 045 } 046 047 048 LocalTimeStatus lt1, lt2; 049 050 051 @Override 052 protected void setUp() { 053 lt1 = new LocalTimeStatus(); 054 lt2 = new LocalTimeStatus(true, 0, true); 055 } 056 057 058 @Override 059 protected void tearDown() { 060 lt1.setNotActive(); 061 lt1.setLimit(Long.MAX_VALUE); 062 lt1.setCallBack((Callable<Boolean>) null); 063 lt2 = null; 064 } 065 066 067 /** 068 * Tests checkTime. 069 */ 070 public void testCheckTime() { 071 //System.out.println("lt1 = " + lt1); 072 //System.out.println("lt2 = " + lt2); 073 lt1.setActive(); 074 assertTrue("is active lt1", lt1.isActive()); 075 assertTrue("is active lt2", lt2.isActive()); 076 lt1.restart(); 077 try { 078 lt1.checkTime("test1"); 079 lt2.checkTime("test1-2"); 080 // succeed 081 } catch (TimeExceededException e) { 082 fail("test1 " + e); 083 } 084 085 lt1.setLimit(0L); 086 assertTrue("is active lt1", lt1.isActive()); 087 try { 088 Thread.sleep(10); 089 lt1.checkTime("test2"); 090 lt2.checkTime("test2-2"); 091 fail("test2 checkTime 1|2"); 092 } catch (TimeExceededException e) { 093 // succeed 094 } catch (InterruptedException e) { 095 fail("test2 interrupt"); 096 } 097 //System.out.println("lt1 = " + lt1); 098 //System.out.println("lt2 = " + lt2); 099 } 100 101 102 /** 103 * Tests call back. 104 */ 105 public void testCallBack() { 106 //System.out.println("lt1 = " + lt1); 107 //System.out.println("lt2 = " + lt2); 108 lt1.setActive(); 109 lt1.restart(); 110 lt1.setLimit(0L); 111 lt1.setCallBack(new LocalTimeStatus.TSCall(true)); 112 assertTrue("is active lt1", lt1.isActive()); 113 assertTrue("is active lt2", lt2.isActive()); 114 115 try { 116 Thread.sleep(10); 117 lt1.checkTime("test3"); 118 lt2.checkTime("test3-2"); 119 // succeed 120 } catch (TimeExceededException e) { 121 fail("test3 checkTime"); 122 } catch (InterruptedException e) { 123 fail("test3 interrupt"); 124 } 125 126 lt1.setCallBack(new LocalTimeStatus.TSCall(false)); 127 try { 128 Thread.sleep(10); 129 lt1.checkTime("test4"); 130 fail("test4 checkTime"); 131 } catch (TimeExceededException e) { 132 // succeed 133 } catch (InterruptedException e) { 134 fail("test4 interrupt"); 135 } 136 137 lt2.setCallBack(new LocalTimeStatus.TSCall(false)); 138 try { 139 Thread.sleep(10); 140 lt2.checkTime("test4-2"); 141 fail("test4 checkTime"); 142 } catch (TimeExceededException e) { 143 // succeed 144 } catch (InterruptedException e) { 145 fail("test4 interrupt"); 146 } 147 //System.out.println("lt1 = " + lt1); 148 //System.out.println("lt2 = " + lt2); 149 } 150 151}