Home » commons-lang-2.4-src » org.apache.commons » lang » time » [javadoc | source]
    1   /*
    2    * Copyright 2002-2005 The Apache Software Foundation.
    3    * 
    4    * Licensed under the Apache License, Version 2.0 (the "License");
    5    * you may not use this file except in compliance with the License.
    6    * You may obtain a copy of the License at
    7    * 
    8    *      http://www.apache.org/licenses/LICENSE-2.0
    9    * 
   10    * Unless required by applicable law or agreed to in writing, software
   11    * distributed under the License is distributed on an "AS IS" BASIS,
   12    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   13    * See the License for the specific language governing permissions and
   14    * limitations under the License.
   15    */
   16   package org.apache.commons.lang.time;
   17   
   18   import junit.framework.Test;
   19   import junit.framework.TestCase;
   20   import junit.framework.TestSuite;
   21   import junit.textui.TestRunner;
   22   
   23   /**
   24    * TestCase for StopWatch.
   25    *
   26    * @author Stephen Colebourne
   27    * @version $Id: StopWatchTest.java 161244 2005-04-14 06:16:36Z ggregory $
   28    */
   29   public class StopWatchTest extends TestCase {
   30   
   31       public static void main(String[] args) {
   32           TestRunner.run(suite());
   33       }
   34   
   35       public static Test suite() {
   36           TestSuite suite = new TestSuite(StopWatchTest.class);
   37           suite.setName("StopWatch Tests");
   38           return suite;
   39       }
   40   
   41       public StopWatchTest(String s) {
   42           super(s);
   43       }
   44   
   45       //-----------------------------------------------------------------------
   46       public void testStopWatchSimple(){
   47           StopWatch watch = new StopWatch();
   48           watch.start();
   49               try {Thread.sleep(550);} catch (InterruptedException ex) {}
   50           watch.stop();
   51           long time = watch.getTime();
   52           assertEquals(time, watch.getTime());
   53           
   54           assertTrue(time >= 500);
   55           assertTrue(time < 700);
   56           
   57           watch.reset();
   58           assertEquals(0, watch.getTime());
   59       }
   60       
   61       public void testStopWatchSimpleGet(){
   62           StopWatch watch = new StopWatch();
   63           assertEquals(0, watch.getTime());
   64           assertEquals("0:00:00.000", watch.toString());
   65           
   66           watch.start();
   67               try {Thread.sleep(500);} catch (InterruptedException ex) {}
   68           assertTrue(watch.getTime() < 2000);
   69       }
   70       
   71       public void testStopWatchSplit(){
   72           StopWatch watch = new StopWatch();
   73           watch.start();
   74               try {Thread.sleep(550);} catch (InterruptedException ex) {}
   75           watch.split();
   76           long splitTime = watch.getSplitTime();
   77               try {Thread.sleep(550);} catch (InterruptedException ex) {}
   78           watch.unsplit();
   79               try {Thread.sleep(550);} catch (InterruptedException ex) {}
   80           watch.stop();
   81           long totalTime = watch.getTime();
   82           
   83           assertTrue(splitTime >= 500);
   84           assertTrue(splitTime < 700);
   85           assertTrue(totalTime >= 1500);
   86           assertTrue(totalTime < 1900);
   87       }
   88       
   89       public void testStopWatchSuspend(){
   90           StopWatch watch = new StopWatch();
   91           watch.start();
   92               try {Thread.sleep(550);} catch (InterruptedException ex) {}
   93           watch.suspend();
   94           long suspendTime = watch.getTime();
   95               try {Thread.sleep(550);} catch (InterruptedException ex) {}
   96           watch.resume();
   97               try {Thread.sleep(550);} catch (InterruptedException ex) {}
   98           watch.stop();
   99           long totalTime = watch.getTime();
  100           
  101           assertTrue(suspendTime >= 500);
  102           assertTrue(suspendTime < 700);
  103           assertTrue(totalTime >= 1000);
  104           assertTrue(totalTime < 1300);
  105       }
  106   
  107       // test bad states
  108       public void testBadStates() {
  109           StopWatch watch = new StopWatch();
  110           try {
  111               watch.stop();
  112               fail("Calling stop on an unstarted StopWatch should throw an exception. ");
  113           } catch(IllegalStateException ise) {
  114               // expected
  115           }
  116   
  117           try {
  118               watch.stop();
  119               fail("Calling stop on an unstarted StopWatch should throw an exception. ");
  120           } catch(IllegalStateException ise) {
  121               // expected
  122           }
  123   
  124           try {
  125               watch.suspend();
  126               fail("Calling suspend on an unstarted StopWatch should throw an exception. ");
  127           } catch(IllegalStateException ise) {
  128               // expected
  129           }
  130   
  131           try {
  132               watch.split();
  133               fail("Calling split on a non-running StopWatch should throw an exception. ");
  134           } catch(IllegalStateException ise) {
  135               // expected
  136           }
  137   
  138           try {
  139               watch.unsplit();
  140               fail("Calling unsplit on an unsplit StopWatch should throw an exception. ");
  141           } catch(IllegalStateException ise) {
  142               // expected
  143           }
  144   
  145           try {
  146               watch.resume();
  147               fail("Calling resume on an unsuspended StopWatch should throw an exception. ");
  148           } catch(IllegalStateException ise) {
  149               // expected
  150           }
  151   
  152           watch.start();
  153   
  154           try {
  155               watch.start();
  156               fail("Calling start on a started StopWatch should throw an exception. ");
  157           } catch(IllegalStateException ise) {
  158               // expected
  159           }
  160   
  161           try {
  162               watch.unsplit();
  163               fail("Calling unsplit on an unsplit StopWatch should throw an exception. ");
  164           } catch(IllegalStateException ise) {
  165               // expected
  166           }
  167   
  168           try {
  169               watch.getSplitTime();
  170               fail("Calling getSplitTime on an unsplit StopWatch should throw an exception. ");
  171           } catch(IllegalStateException ise) {
  172               // expected
  173           }
  174   
  175           try {
  176               watch.resume();
  177               fail("Calling resume on an unsuspended StopWatch should throw an exception. ");
  178           } catch(IllegalStateException ise) {
  179               // expected
  180           }
  181   
  182           watch.stop();
  183   
  184           try {
  185               watch.start();
  186               fail("Calling start on a stopped StopWatch should throw an exception as it needs to be reset. ");
  187           } catch(IllegalStateException ise) {
  188               // expected
  189           }
  190   
  191       }
  192   
  193   }

Save This Page
Home » commons-lang-2.4-src » org.apache.commons » lang » time » [javadoc | source]