KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > junitx > runner > listener > BeeperListener


1 /*
2  * The Apricot Software License, Version 1.0
3  * (based on the Apache Software License, Version 1.1)
4  *
5  * Copyright (c) 2001-2002 Vladimir Bossicard. All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions
9  * are met:
10  *
11  * 1. Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  *
14  * 2. Redistributions in binary form must reproduce the above copyright
15  * notice, this list of conditions and the following disclaimer in
16  * the documentation and/or other materials provided with the
17  * distribution.
18  *
19  * 3. The end-user documentation included with the redistribution, if
20  * any, must include the following acknowlegement:
21  * "This product includes software developed by Vladimir Bossicard
22  * as well as other Apricot Project contributors
23  * (http://apricot.sourceforge.net/)."
24  * Alternately, this acknowlegement may appear in the software itself,
25  * if and wherever such third-party acknowlegements normally appear.
26  *
27  * 4. The names "Apricot" and "Vladimir Bossicard" must not be used to
28  * endorse or promote products derived from this software without
29  * prior written permission. For written permission, please contact
30  * vbossica@users.sourceforge.net.
31  *
32  * 5. Products derived from this software may not be called "Apricot"
33  * nor may "Apricot" appear in their names without prior written
34  * permission of the Apricot project managers.
35  *
36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
40  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47  * SUCH DAMAGE.
48  * ======================================================================
49  *
50  * This software consists of voluntary contributions made by many
51  * individuals. For more information on the Apricot Project, please
52  * see <http://apricot.sourceforge.net/>.
53  */

54
55 package junitx.runner.listener;
56
57 import java.awt.Toolkit JavaDoc;
58 import java.util.Properties JavaDoc;
59
60 import junit.framework.Test;
61 import junit.framework.TestResult;
62
63 /**
64  * Class that enables an auditive feedback during the execution of the tests.<p>
65  *
66  * <b>Properties</b>
67  * <ul>
68  * <li><code>beeperlistener.run_started</code>: beeps when a run started (default: <code>false</code>)</li>
69  * <li><code>beeperlistener.run_ended</code>: beeps when a run ended (default: <code>false</code>)</li>
70  * <li><code>beeperlistener.test_started</code>: beeps when a test started (default: <code>false</code>)</li>
71  * <li><code>beeperlistener.test_success</code>: beeps when a test finished successfully (default: <code>false</code>)</li>
72  * <li><code>beeperlistener.test_failure</code>: beeps when a test raised a failure (default: <code>true</code>)</li>
73  * <li><code>beeperlistener.test_error</code>: beeps when a test raised an error (default: <code>true</code>)</li>
74  * </ul>
75  *
76  * @version $Id: BeeperListener.java,v 1.7 2003/04/17 02:54:54 vbossica Exp $
77  * @author <a HREF="mailto:vbossica@users.sourceforge.net">Vladimir Bossicard</a>
78  */

79 public class BeeperListener extends AbstractRunListener {
80
81     /**
82      * <code>true</code> if a beep must be emitted when the run has started.
83      */

84     private boolean runStarted = false;
85
86     /**
87      * <code>true</code> if a beep must be emitted when the run has ended.
88      */

89     private boolean runEnded = false;
90
91     /**
92      * <code>true</code> if a beep must be emitted when the test has started.
93      */

94     private boolean testStarted = false;
95
96     /**
97      * <code>true</code> if a beep must be emitted when the test is successful.
98      */

99     private boolean testSuccess = false;
100
101     /**
102      * <code>true</code> if a beep must be emitted when a failure occured.
103      */

104     private boolean testFailure = true;
105
106     /**
107      * <code>true</code> if a beep must be emitted when an error occured.
108      */

109     private boolean testError = true;
110
111     public void init(Properties JavaDoc props) throws Exception JavaDoc {
112         super.init(props);
113
114         this.runStarted = Boolean.valueOf(props.getProperty("BeeperListener.run_started", "false")).booleanValue();
115         this.runEnded = Boolean.valueOf(props.getProperty("BeeperListener.run_ended", "false")).booleanValue();
116         this.testStarted = Boolean.valueOf(props.getProperty("BeeperListener.test_started", "false")).booleanValue();
117         this.testSuccess = Boolean.valueOf(props.getProperty("BeeperListener.test_success", "false")).booleanValue();
118         this.testFailure = Boolean.valueOf(props.getProperty("BeeperListener.test_failure", "true")).booleanValue();
119         this.testError = Boolean.valueOf(props.getProperty("BeeperListener.test_error", "true")).booleanValue();
120     }
121
122     public void runStarted(Test test, long time) {
123         if (this.runStarted) {
124             Toolkit.getDefaultToolkit().beep();
125         }
126     }
127
128     public void runStopped(Test test, long duration) {
129     }
130
131     public void runEnded(Test test, TestResult result, long duration) {
132         if (this.runEnded) {
133             Toolkit.getDefaultToolkit().beep();
134         }
135     }
136
137     public void testIgnored(Test test) {
138     }
139     
140     public void testStarted(Test test, TestResult result) {
141         if (this.testStarted) {
142             Toolkit.getDefaultToolkit().beep();
143         }
144     }
145
146     public void testFailure(Test test, TestResult result, Throwable JavaDoc t) {
147         if (testFailure) {
148             Toolkit.getDefaultToolkit().beep();
149         }
150     }
151
152     public void testError(Test test, TestResult result, Throwable JavaDoc t) {
153         if (testError) {
154             Toolkit.getDefaultToolkit().beep();
155         }
156     }
157
158     public void testSuccess(Test test, TestResult result) {
159         if (this.testSuccess) {
160             Toolkit.getDefaultToolkit().beep();
161         }
162     }
163
164
165
166 }
167
Popular Tags