litesoft
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
package org.litesoft.delayed;
import java.util.*;
import junit.framework.*;
import org.litesoft.core.delayed.*;
import org.litesoft.core.util.*;
import org.litesoft.delayed.nonpublic.*;
public class ThreadBasedDelayedTimedRunnableRunnerTest extends TestCase
{
public static TestSuite suite()
{
return new TestSuite( ThreadBasedDelayedTimedRunnableRunnerTest.class );
}
protected void setUp()
throws Exception
{
super.setUp();
mAfter = null;
mRan = false;
mError = null;
mTimer = new ThreadBasedDelayedTimedRunnableRunner();
mTimer.initialize( new TimedRunnable()
{
public Again runOnce()
{
mAfter = new Date().getTime();
mRan = true;
return null;
}
}, new UnexpectedExceptionHandler()
{
public void onUnexpectedException( String pFrom, Throwable pException )
{
mRan = true;
mError = pException;
}
} );
}
private volatile Long mAfter;
private volatile boolean mRan;
private volatile Throwable mError;
private ThreadBasedDelayedTimedRunnableRunner mTimer;
public void testTimer()
throws Exception
{
long before = new Date().getTime();
long targetTime = before + 100;
mTimer.scheduleFor( targetTime );
// Give it upto a full second to run...
for ( int i = 0; i < 100; i++ )
{
Thread.sleep( 10 );
if ( mRan )
{
break;
}
}
assertTrue( mRan );
assertTrue( mAfter >= targetTime );
assertNull( mError );
}
public void testCancelTimer()
throws Exception
{
long before = new Date().getTime();
mTimer.scheduleFor( before + 1000 );
Thread.sleep( 10 );
mTimer.cancel();
Thread.sleep( 10 );
assertFalse( "!Canceled", mTimer.isScheduled() );
assertFalse( "Timed thread was supposed to be canceled", mRan );
assertNull( mError );
}
}
|
Revision |
Author |
Commited |
Message |
2
|
GeorgeS
|
Sun 07 Feb, 2010 12:50:58 +0000 |
|