001package org.apache.maven.wagon.events;
002
003/*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements.  See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership.  The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License.  You may obtain a copy of the License at
011 *
012 *   http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied.  See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022import junit.framework.TestCase;
023
024import org.apache.maven.wagon.Wagon;
025import org.easymock.MockControl;
026
027/**
028 * @author <a href="michal.maczka@dimatics.com">Michal Maczka</a>
029 *
030 */
031public class SessionEventSupportTest
032    extends TestCase
033{
034
035    private SessionEventSupport eventSupport;
036
037    private MockControl wagonMockControl;
038    
039    private Wagon wagon;
040
041    /**
042     * @see junit.framework.TestCase#setUp()
043     */
044    protected void setUp()
045        throws Exception
046    {
047        super.setUp();
048
049        eventSupport = new SessionEventSupport();
050        
051        // TODO: actually test it gets called?
052        wagonMockControl = MockControl.createControl( Wagon.class );
053        
054        wagon = (Wagon) wagonMockControl.getMock();
055    }
056
057    public void testSessionListenerRegistration()
058    {
059        final SessionListenerMock mock1 = new SessionListenerMock();
060
061        eventSupport.addSessionListener( mock1 );
062
063        assertTrue( eventSupport.hasSessionListener( mock1 ) );
064
065        final SessionListenerMock mock2 = new SessionListenerMock();
066
067        assertFalse( eventSupport.hasSessionListener( mock2 ) );
068
069        eventSupport.addSessionListener( mock2 );
070
071        assertTrue( eventSupport.hasSessionListener( mock1 ) );
072
073        assertTrue( eventSupport.hasSessionListener( mock2 ) );
074
075        eventSupport.removeSessionListener( mock2 );
076
077        assertTrue( eventSupport.hasSessionListener( mock1 ) );
078
079        assertFalse( eventSupport.hasSessionListener( mock2 ) );
080
081        eventSupport.removeSessionListener( mock1 );
082
083        assertFalse( eventSupport.hasSessionListener( mock1 ) );
084    }
085
086    public void testFireSessionDisconnected()
087    {
088
089        final SessionListenerMock mock1 = new SessionListenerMock();
090
091        eventSupport.addSessionListener( mock1 );
092
093        final SessionListenerMock mock2 = new SessionListenerMock();
094
095        eventSupport.addSessionListener( mock2 );
096
097        final SessionEvent event = new SessionEvent( wagon, 1 );
098
099        eventSupport.fireSessionDisconnected( event );
100
101        assertTrue( mock1.isSessionDisconnectedCalled() );
102
103        assertTrue( mock2.isSessionDisconnectedCalled() );
104
105        assertEquals( event, mock1.getSessionEvent() );
106
107        assertEquals( event, mock2.getSessionEvent() );
108
109    }
110
111    public void testFireSessionDisconneting()
112    {
113        final SessionListenerMock mock1 = new SessionListenerMock();
114
115        eventSupport.addSessionListener( mock1 );
116
117        final SessionListenerMock mock2 = new SessionListenerMock();
118
119        eventSupport.addSessionListener( mock2 );
120
121        final SessionEvent event = new SessionEvent( wagon, 1 );
122
123        eventSupport.fireSessionDisconnecting( event );
124
125        assertTrue( mock1.isSessionDisconnectingCalled() );
126
127        assertTrue( mock2.isSessionDisconnectingCalled() );
128
129        assertEquals( event, mock1.getSessionEvent() );
130
131        assertEquals( event, mock2.getSessionEvent() );
132    }
133
134    public void testFireSessionLoggedIn()
135    {
136        final SessionListenerMock mock1 = new SessionListenerMock();
137
138        eventSupport.addSessionListener( mock1 );
139
140        final SessionListenerMock mock2 = new SessionListenerMock();
141
142        eventSupport.addSessionListener( mock2 );
143
144        final SessionEvent event = new SessionEvent( wagon, 1 );
145
146        eventSupport.fireSessionLoggedIn( event );
147
148        assertTrue( mock1.isSessionLoggedInCalled() );
149
150        assertTrue( mock2.isSessionLoggedInCalled() );
151
152        assertEquals( event, mock1.getSessionEvent() );
153
154        assertEquals( event, mock2.getSessionEvent() );
155
156    }
157
158    public void testFireSessionLoggedOff()
159    {
160        final SessionListenerMock mock1 = new SessionListenerMock();
161
162        eventSupport.addSessionListener( mock1 );
163
164        final SessionListenerMock mock2 = new SessionListenerMock();
165
166        eventSupport.addSessionListener( mock2 );
167
168        final SessionEvent event = new SessionEvent( wagon, 1 );
169
170        eventSupport.fireSessionLoggedOff( event );
171
172        assertTrue( mock1.isSessionLoggedOffCalled() );
173
174        assertTrue( mock2.isSessionLoggedOffCalled() );
175
176        assertEquals( event, mock1.getSessionEvent() );
177
178        assertEquals( event, mock2.getSessionEvent() );
179    }
180
181    public void testFireSessionOpened()
182    {
183
184        final SessionListenerMock mock1 = new SessionListenerMock();
185
186        eventSupport.addSessionListener( mock1 );
187
188        final SessionListenerMock mock2 = new SessionListenerMock();
189
190        eventSupport.addSessionListener( mock2 );
191
192        final SessionEvent event = new SessionEvent( wagon, 1 );
193
194        eventSupport.fireSessionOpened( event );
195
196        assertTrue( mock1.isSessionOpenedCalled() );
197
198        assertTrue( mock2.isSessionOpenedCalled() );
199
200        assertEquals( event, mock1.getSessionEvent() );
201
202        assertEquals( event, mock2.getSessionEvent() );
203
204    }
205
206    public void testFireSessionOpenning()
207    {
208
209        final SessionListenerMock mock1 = new SessionListenerMock();
210
211        eventSupport.addSessionListener( mock1 );
212
213        final SessionListenerMock mock2 = new SessionListenerMock();
214
215        eventSupport.addSessionListener( mock2 );
216
217        final SessionEvent event = new SessionEvent( wagon, 1 );
218
219        eventSupport.fireSessionOpening( event );
220
221        assertTrue( mock1.isSessionOpenningCalled() );
222
223        assertTrue( mock2.isSessionOpenningCalled() );
224
225        assertEquals( event, mock1.getSessionEvent() );
226
227        assertEquals( event, mock2.getSessionEvent() );
228
229    }
230
231    public void testFireSessionRefused()
232    {
233        final SessionListenerMock mock1 = new SessionListenerMock();
234
235        eventSupport.addSessionListener( mock1 );
236
237        final SessionListenerMock mock2 = new SessionListenerMock();
238
239        eventSupport.addSessionListener( mock2 );
240
241        final SessionEvent event = new SessionEvent( wagon, 1 );
242
243        eventSupport.fireSessionConnectionRefused( event );
244
245        assertTrue( mock1.isSessionRefusedCalled() );
246
247        assertTrue( mock2.isSessionRefusedCalled() );
248
249        assertEquals( event, mock1.getSessionEvent() );
250
251        assertEquals( event, mock2.getSessionEvent() );
252    }
253
254    public void testFireDebug()
255    {
256        final SessionListenerMock mock1 = new SessionListenerMock();
257
258        eventSupport.addSessionListener( mock1 );
259
260        final SessionListenerMock mock2 = new SessionListenerMock();
261
262        eventSupport.addSessionListener( mock2 );
263
264        eventSupport.fireDebug( "mm" );
265
266        assertTrue( mock1.isDebugCalled() );
267
268        assertTrue( mock2.isDebugCalled() );
269
270        assertEquals( "mm", mock1.getDebugMessage() );
271
272        assertEquals( "mm", mock2.getDebugMessage() );
273
274    }
275    
276}