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: ChannelManagerTest.java,v 1.3 2005/08/29 17:41:32 mat007 Exp $ 29 */ 30 31 package jtge.engine.io; 32 33 import jtge.engine.io.ChannelManager; 34 import jtge.engine.io.IChannelObserver; 35 import jtge.engine.io.IInput; 36 import jtge.engine.io.IOutput; 37 import jtge.util.EasyMockTestCase; 38 39 /*** 40 * ChannelManager test. 41 * 42 * @author Mathieu Champlon 43 * @version $Revision: 1.3 $ $Date: 2005/08/29 17:41:32 $ 44 */ 45 public class ChannelManagerTest extends EasyMockTestCase 46 { 47 /*** 48 * Tested object. 49 */ 50 private ChannelManager manager; 51 /*** 52 * Mock objects. 53 */ 54 private IInput mockInput; 55 private IOutput mockOutput; 56 private IChannelObserver mockConnectionView; 57 58 protected void setUp() 59 { 60 mockInput = (IInput)createMock( IInput.class ); 61 mockOutput = (IOutput)createMock( IOutput.class ); 62 mockConnectionView = (IChannelObserver)createMock( IChannelObserver.class ); 63 manager = new ChannelManager(); 64 manager.register( mockConnectionView ); 65 } 66 67 public void testRegisterInputOutputTriggersConnectionView() 68 { 69 mockConnectionView.connected( mockInput, mockOutput ); 70 replay(); 71 manager.opened( mockInput, mockOutput ); 72 } 73 74 public void testUnregisterRegisteredInputTriggersConnectionView() 75 { 76 manager.opened( mockInput, mockOutput ); 77 reset(); 78 mockOutput.close(); 79 mockInput.close(); 80 mockConnectionView.disconnected( mockInput, mockOutput ); 81 replay(); 82 manager.closed( mockInput ); 83 } 84 85 public void testRegisterInputOutputAndClearManagerClosesBoth() 86 { 87 manager.opened( mockInput, mockOutput ); 88 reset(); 89 mockInput.close(); 90 mockOutput.close(); 91 replay(); 92 manager.close(); 93 verify(); 94 reset(); 95 mockInput.close(); 96 mockOutput.close(); 97 replay(); 98 manager.close(); 99 } 100 101 public void testRegisterInputOutputAndUnregisterInputClosesBoth() 102 { 103 manager.opened( mockInput, mockOutput ); 104 reset(); 105 mockInput.close(); 106 mockOutput.close(); 107 mockConnectionView.disconnected( mockInput, mockOutput ); 108 replay(); 109 manager.closed( mockInput ); 110 verify(); 111 reset(); 112 replay(); 113 manager.close(); 114 } 115 116 public void testUnregisterNonRegisteredIsNoOp() 117 { 118 manager.closed( mockInput ); 119 manager.closed( mockOutput ); 120 } 121 }