litesoft
@ 947
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 81 82 83 84 85 86 87 |
// This Source Code is in the Public Domain per: http://unlicense.org package org.litesoft.delayed; import junit.framework.*; import org.litesoft.commonfoundation.base.*; 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 ); } @Override protected void setUp() throws Exception { super.setUp(); mMillisecTimeSource = MillisecTimeSource.INSTANCE; mAfter = null; mRan = false; mError = null; mTimer = new ThreadBasedDelayedTimedRunnableRunner(); mTimer.initialize( new TimedRunnable() { @Override public Again runOnce() { mAfter = mMillisecTimeSource.now(); mRan = true; return null; } }, new UnexpectedExceptionHandler() { @Override public void onUnexpectedException( String pFrom, Throwable pException ) { mRan = true; mError = pException; } } ); } private MillisecTimeSource mMillisecTimeSource; private volatile Long mAfter; private volatile boolean mRan; private volatile Throwable mError; private ThreadBasedDelayedTimedRunnableRunner mTimer; public void testTimer() throws Exception { long before = mMillisecTimeSource.now(); 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 = mMillisecTimeSource.now(); 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 ); } } |
Commits for litesoft/trunk/Java/core/Server/src/org/litesoft/delayed/ThreadBasedDelayedTimedRunnableRunnerTest.java
Revision | Author | Commited | Message |
---|---|---|---|
947 Diff | GeorgeS | Fri 06 Jun, 2014 23:36:56 +0000 | Correct Spelling of package! |
942 Diff | GeorgeS | Mon 02 Jun, 2014 23:41:46 +0000 | Extracting commonfoundation |
858 Diff | GeorgeS | Sun 04 Nov, 2012 18:40:40 +0000 | |
475 Diff | GeorgeS | Sat 03 Sep, 2011 13:54:51 +0000 | |
151 Diff | GeorgeS | Thu 17 Mar, 2011 04:16:22 +0000 | |
49 Diff | GeorgeS | Mon 12 Apr, 2010 02:59:10 +0000 | License Text |
24 Diff | GeorgeS | Wed 24 Feb, 2010 01:51:38 +0000 | |
2 | GeorgeS | Sun 07 Feb, 2010 12:50:58 +0000 |