1 /*** 2 * Redistribution and use in source and binary forms, with or without 3 * modification, are permitted provided that the following conditions are 4 * met : 5 * 6 * . Redistributions of source code must retain the above copyright 7 * notice, this list of conditions and the following disclaimer. 8 * 9 * . Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * . The name of the author may not be used to endorse or promote products 14 * derived from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 20 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 25 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 * POSSIBILITY OF SUCH DAMAGE. 27 * 28 * $Id$ 29 */ 30 31 package jtge.engine.io; 32 33 import jtge.engine.command.ICommand; 34 import jtge.util.EasyMockTestCase; 35 36 /*** 37 * Output test case. 38 * 39 * @author Mathieu Champlon 40 * @version $Revision$ $Date$ 41 */ 42 public class OutputTest extends EasyMockTestCase 43 { 44 /*** 45 * Tested object. 46 */ 47 private Output output; 48 /*** 49 * Mock objects. 50 */ 51 private IDisconnectionObserver mockObserver; 52 private IOutputImp mockOutputImp; 53 private ICommand mockCommand; 54 55 protected void setUp() 56 { 57 mockObserver = (IDisconnectionObserver)createMock( IDisconnectionObserver.class ); 58 mockOutputImp = (IOutputImp)createMock( IOutputImp.class ); 59 mockCommand = (ICommand)createMock( ICommand.class ); 60 output = new Output( mockObserver, mockOutputImp ); 61 } 62 63 public void testCloseClosesOutputIfNotAlreadyClosed() 64 { 65 mockOutputImp.isClosed(); 66 control( mockOutputImp ).setReturnValue( false ); 67 mockOutputImp.close(); 68 mockObserver.closed( output ); 69 replay(); 70 output.close(); 71 } 72 73 public void testCloseIsNoOpIfOutputAlreadyClosed() 74 { 75 mockOutputImp.isClosed(); 76 control( mockOutputImp ).setReturnValue( true ); 77 replay(); 78 output.close(); 79 } 80 81 public void testHandleCommandForwardsToWrite() 82 { 83 mockOutputImp.write( mockCommand ); 84 replay(); 85 output.handle( mockCommand ); 86 } 87 }