001: /*
002: * JOnAS: Java(TM) Open Application Server
003: * Copyright (C) 1999 Bull S.A.
004: * Contact: jonas-team@objectweb.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * --------------------------------------------------------------------------
022: * $Id: A_Timer.java 4406 2004-03-19 11:57:20Z benoitf $
023: * --------------------------------------------------------------------------
024: */
025:
026: package org.objectweb.jonas.jtests.clients.entity;
027:
028: import org.objectweb.jonas.jtests.beans.annuaire.Personne;
029: import org.objectweb.jonas.jtests.beans.annuaire.PersonneHome;
030: import org.objectweb.jonas.jtests.util.JTestCase;
031:
032: /**
033: * This is test of the TimerService.
034: * Beans used: annuaire
035: * @author Philippe Durieux (jonas team)
036: */
037: public abstract class A_Timer extends JTestCase {
038:
039: String mynum = "638";
040: String myname = "Philippe Durieux";
041:
042: public A_Timer(String name) {
043: super (name);
044: }
045:
046: protected void setUp() {
047: super .setUp();
048: useBeans("annuaire", true);
049: }
050:
051: /**
052: * return PersonneHome, that can be either CMP v1 or CMP v2 bean.
053: */
054: abstract public PersonneHome getHome();
055:
056: /**
057: * Test simple timer
058: */
059: public void testTimer1() throws Exception {
060: int duration = 5;
061: Personne p = getHome().findByPrimaryKey(myname);
062: int oldval = p.getTimerCount();
063: int id = p.setTimer(duration, 0);
064: assertEquals("timer expired too quickly", oldval, p
065: .getTimerCount());
066: sleep(1000 * (duration + 1));
067: assertEquals("timer did not expired", oldval + 1, p
068: .getTimerCount());
069: }
070:
071: /**
072: * test getTimeRemaining on a Timer
073: */
074: public void testTimeRemaining() throws Exception {
075: int duration1 = 5000;
076: int duration2 = 2000;
077: Personne p = getHome().findByPrimaryKey(myname);
078: int id1 = p.setTimer(duration1, 0);
079: int id2 = p.setTimer(duration2, 0);
080: long t1 = p.getTimeRemaining(id1) / 1000;
081: long t2 = p.getTimeRemaining(id2) / 1000;
082: sleep(1000);
083: assertTrue(t1 < duration1);
084: assertTrue(t2 < duration2);
085: assertTrue(t1 > duration1 - 2);
086: assertTrue(t2 > duration2 - 2);
087: }
088:
089: /**
090: * Test du cancel Timer
091: */
092: public void testCancel1() throws Exception {
093: int duration = 2;
094: Personne p = getHome().findByPrimaryKey(myname);
095: int oldval = p.getTimerCount();
096: int id = p.setTimer(duration, 0);
097: assertEquals("timer expired too quickly", oldval, p
098: .getTimerCount());
099: p.cancelTimer(id);
100: sleep(1000 * (duration + 1));
101: assertEquals("timer did expired", oldval, p.getTimerCount());
102: }
103:
104: }
|