EMMA Coverage Report (generated Tue Jan 14 00:37:43 CET 2014)
[all classes][org.jdtaus.core.lang.spi.it]

COVERAGE SUMMARY FOR SOURCE FILE [ExecutorTest.java]

nameclass, %method, %block, %line, %
ExecutorTest.java0%   (0/4)0%   (0/11)0%   (0/102)0%   (0/29)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class ExecutorTest0%   (0/1)0%   (0/5)0%   (0/82)0%   (0/20)
<static initializer> 0%   (0/1)0%   (0/19)0%   (0/2)
ExecutorTest (): void 0%   (0/1)0%   (0/3)0%   (0/2)
getExceptionEventSource (): ExceptionEventSource 0%   (0/1)0%   (0/3)0%   (0/1)
testNullArguments (): void 0%   (0/1)0%   (0/28)0%   (0/8)
testOnException (): void 0%   (0/1)0%   (0/29)0%   (0/7)
     
class ExecutorTest$10%   (0/1)0%   (0/2)0%   (0/7)0%   (0/2)
ExecutorTest$1 (): void 0%   (0/1)0%   (0/3)0%   (0/1)
run (): void 0%   (0/1)0%   (0/4)0%   (0/1)
     
class ExecutorTest$ExecutionException0%   (0/1)0%   (0/1)0%   (0/3)0%   (0/2)
ExecutorTest$ExecutionException (): void 0%   (0/1)0%   (0/3)0%   (0/2)
     
class ExecutorTest$TestListener0%   (0/1)0%   (0/3)0%   (0/10)0%   (0/5)
ExecutorTest$TestListener (): void 0%   (0/1)0%   (0/3)0%   (0/2)
getEvent (): ExceptionEvent 0%   (0/1)0%   (0/3)0%   (0/1)
onException (ExceptionEvent): void 0%   (0/1)0%   (0/4)0%   (0/2)

1/*
2 *  jDTAUS Core Test Suite
3 *  Copyright (C) 2005 Christian Schulte
4 *  <cs@schulte.it>
5 *
6 *  This library is free software; you can redistribute it and/or
7 *  modify it under the terms of the GNU Lesser General Public
8 *  License as published by the Free Software Foundation; either
9 *  version 2.1 of the License, or any later version.
10 *
11 *  This library is distributed in the hope that it will be useful,
12 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 *  Lesser General Public License for more details.
15 *
16 *  You should have received a copy of the GNU Lesser General Public
17 *  License along with this library; if not, write to the Free Software
18 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19 *
20 */
21package org.jdtaus.core.lang.spi.it;
22 
23import junit.framework.Assert;
24import org.jdtaus.core.lang.ExceptionEvent;
25import org.jdtaus.core.lang.ExceptionEventSource;
26import org.jdtaus.core.lang.ExceptionListener;
27import org.jdtaus.core.lang.it.ExceptionEventSourceTest;
28import org.jdtaus.core.lang.spi.Executor;
29 
30/**
31 * Testcase for {@code Executor} implementations.
32 *
33 * @author <a href="mailto:cs@schulte.it">Christian Schulte</a>
34 * @version $JDTAUS: ExecutorTest.java 8743 2012-10-07 03:06:20Z schulte $
35 */
36public abstract class ExecutorTest extends ExceptionEventSourceTest
37{
38    //--ExceptionEventSourceTest------------------------------------------------
39 
40    /**
41     * {@inheritDoc}
42     * @see #getExecutor()
43     */
44    public final ExceptionEventSource getExceptionEventSource()
45    {
46        return this.getExecutor();
47    }
48 
49    //------------------------------------------------ExceptionEventSourceTest--
50    //--ExecutorTest------------------------------------------------------------
51 
52    /** Creates a new {@code ExecutorTest} instance. */
53    public ExecutorTest()
54    {
55        super();
56    }
57 
58    /**
59     * Gets the {@code Executor} implementation tests are performed with.
60     *
61     * @return the {@code Executor} implementation tests are performed with.
62     */
63    public abstract Executor getExecutor();
64 
65    //------------------------------------------------------------ExecutorTest--
66    //--Tests-------------------------------------------------------------------
67 
68    /** Exception expected to be reported. */
69    public static final class ExecutionException extends RuntimeException
70    {
71 
72        public ExecutionException()
73        {
74            super();
75        }
76 
77    }
78 
79    /** {@code Runnable} throwing {@code ExecutionException}. */
80    public static final Runnable runnable = new Runnable()
81    {
82 
83        public void run()
84        {
85            throw new ExecutionException();
86        }
87 
88    };
89 
90    /** {@code ExceptionListener} providing the last reported event. */
91    public static final class TestListener implements ExceptionListener
92    {
93 
94        /** The last reported event. */
95        private ExceptionEvent event;
96 
97        /** Creates a new {@code TestListener} instance. */
98        public TestListener()
99        {
100            super();
101        }
102 
103        /**
104         * Gets the last reported event.
105         *
106         * @return the last reported event.
107         */
108        public ExceptionEvent getEvent()
109        {
110            return this.event;
111        }
112 
113        public void onException( final ExceptionEvent event )
114        {
115            this.event = event;
116        }
117 
118    }
119 
120    /**
121     * Tests the {@link Executor#executeAsynchronously(Runnable)} method to
122     * handle {@code null} arguments correctly by throwing a corresponding
123     * {@code NullPointerException}.
124     */
125    public void testNullArguments() throws Exception
126    {
127        super.testNullArguments();
128 
129        assert this.getExecutor() != null;
130 
131        try
132        {
133            this.getExecutor().executeAsynchronously( null );
134            throw new AssertionError();
135        }
136        catch ( final NullPointerException e )
137        {
138            Assert.assertNotNull( e.getMessage() );
139            System.out.println( e.toString() );
140        }
141 
142    }
143 
144    /**
145     * Tests the {@link Executor#executeAsynchronously(Runnable)} method to
146     * report any exceptions thrown during execution.
147     */
148    public void testOnException() throws Exception
149    {
150        assert this.getExecutor() != null;
151 
152        final TestListener listener = new TestListener();
153        this.getExecutor().addExceptionListener( listener );
154        this.getExecutor().executeAsynchronously( runnable );
155 
156        // Wait 5 seconds and test the listener.
157        Thread.sleep( 5000L );
158 
159        Assert.assertTrue( listener.getEvent().
160                           getException() instanceof ExecutionException );
161 
162    }
163 
164    //-------------------------------------------------------------------Tests--
165}

[all classes][org.jdtaus.core.lang.spi.it]
EMMA 2.1.5320 (stable) (C) Vladimir Roubtsov