[Asterisk-java-cvs] CVS: asterisk-java/src/test/net/sf/asterisk/manager ManagerWriterImplTest.java,N
Brought to you by:
srt
From: Stefan R. <sr...@us...> - 2005-03-02 23:16:00
|
Update of /cvsroot/asterisk-java/asterisk-java/src/test/net/sf/asterisk/manager In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29560/src/test/net/sf/asterisk/manager Added Files: ManagerWriterImplTest.java ManagerReaderImplTest.java Log Message: Added unit tests for ManagerReader and ManagerWriter (and did some refactoring to make this work) --- NEW FILE: ManagerWriterImplTest.java --- /* * Copyright 2004-2005 Stefan Reuter * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package net.sf.asterisk.manager; import org.easymock.MockControl; import net.sf.asterisk.manager.action.StatusAction; import net.sf.asterisk.manager.io.SocketConnectionFacade; import junit.framework.TestCase; public class ManagerWriterImplTest extends TestCase { private ManagerWriter managerWriter; public void setUp() { managerWriter = new ManagerWriterImpl(); } public void testSendActionWithoutSocket() throws Exception { try { managerWriter.sendAction(new StatusAction()); fail("Must throw IllegalStateException"); } catch (IllegalStateException e) { assertTrue("Exception must be of type IllegalStateException", e instanceof IllegalStateException); } } public void testSendAction() throws Exception { MockControl socketMC; SocketConnectionFacade socketConnectionFacade; socketMC = MockControl.createControl(SocketConnectionFacade.class); socketConnectionFacade = (SocketConnectionFacade) socketMC.getMock(); socketConnectionFacade.print("action: Status\r\n\r\n"); socketConnectionFacade.flush(); socketMC.replay(); managerWriter.setSocket(socketConnectionFacade); managerWriter.sendAction(new StatusAction()); socketMC.verify(); } } --- NEW FILE: ManagerReaderImplTest.java --- /* * Copyright 2004-2005 Stefan Reuter * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package net.sf.asterisk.manager; import java.io.IOException; import java.util.ArrayList; import java.util.Date; import java.util.List; import junit.framework.TestCase; import net.sf.asterisk.manager.event.ConnectEvent; import net.sf.asterisk.manager.event.DisconnectEvent; import net.sf.asterisk.manager.event.StatusCompleteEvent; import net.sf.asterisk.manager.io.SocketConnectionFacade; import net.sf.asterisk.manager.response.CommandResponse; import net.sf.asterisk.manager.response.ManagerResponse; import net.sf.asterisk.manager.util.DateUtil; import org.easymock.MockControl; public class ManagerReaderImplTest extends TestCase { private Date now; private MockControl dispatcherMC; private Dispatcher dispatcher; private MockControl socketConnectionFacadeMC; private SocketConnectionFacade socketConnectionFacade; private AsteriskServer asteriskServer; private ManagerReader managerReader; public void setUp() { now = new Date(); DateUtil.overrideCurrentDate(now); asteriskServer = new AsteriskServer(); dispatcherMC = MockControl.createControl(Dispatcher.class); dispatcher = (Dispatcher) dispatcherMC.getMock(); managerReader = new ManagerReaderImpl(dispatcher, asteriskServer); socketConnectionFacadeMC = MockControl.createControl(SocketConnectionFacade.class); socketConnectionFacade = (SocketConnectionFacade) socketConnectionFacadeMC.getMock(); } public void testRunWithoutSocket() throws Exception { try { managerReader.run(); fail("Must throw IllegalStateException"); } catch (IllegalStateException e) { assertTrue("Exception must be of type IllegalStateException", e instanceof IllegalStateException); } } public void testRunReceivingProtocolIdentifier() throws Exception { ConnectEvent connectEvent; DisconnectEvent disconnectEvent; socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue("Asterisk Call Manager/1.0"); socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue(null); connectEvent = new ConnectEvent(asteriskServer); connectEvent.setProtocolIdentifier("Asterisk Call Manager/1.0"); connectEvent.setDateReceived(now); dispatcher.dispatchEvent(connectEvent); disconnectEvent = new DisconnectEvent(asteriskServer); disconnectEvent.setDateReceived(now); dispatcher.dispatchEvent(disconnectEvent); socketConnectionFacadeMC.replay(); dispatcherMC.replay(); managerReader.setSocket(socketConnectionFacade); managerReader.run(); socketConnectionFacadeMC.verify(); dispatcherMC.verify(); } public void testRunReceivingEvent() throws Exception { DisconnectEvent disconnectEvent; StatusCompleteEvent statusCompleteEvent; socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue("Event: StatusComplete"); socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue(""); socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue(null); statusCompleteEvent = new StatusCompleteEvent(asteriskServer); statusCompleteEvent.setDateReceived(now); dispatcher.dispatchEvent(statusCompleteEvent); disconnectEvent = new DisconnectEvent(asteriskServer); disconnectEvent.setDateReceived(now); dispatcher.dispatchEvent(disconnectEvent); socketConnectionFacadeMC.replay(); dispatcherMC.replay(); managerReader.setSocket(socketConnectionFacade); managerReader.run(); socketConnectionFacadeMC.verify(); dispatcherMC.verify(); } public void testRunReceivingResponse() throws Exception { DisconnectEvent disconnectEvent; ManagerResponse response; socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue("Response: Success"); socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue("Message: Authentication accepted"); socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue(""); socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue(null); response = new ManagerResponse(); response.setResponse("Success"); response.setMessage("Authentication accepted"); response.setDateReceived(now); dispatcher.dispatchResponse(response); disconnectEvent = new DisconnectEvent(asteriskServer); disconnectEvent.setDateReceived(now); dispatcher.dispatchEvent(disconnectEvent); socketConnectionFacadeMC.replay(); dispatcherMC.replay(); managerReader.setSocket(socketConnectionFacade); managerReader.run(); socketConnectionFacadeMC.verify(); dispatcherMC.verify(); } public void testRunReceivingCommandResponse() throws Exception { DisconnectEvent disconnectEvent; CommandResponse response; List result = new ArrayList(); socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue("Response: Follows"); socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue("ActionID: 12345"); socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue("Line1"); socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue("Line2"); socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue("--END COMMAND--"); socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue(""); socketConnectionFacade.readLine(); socketConnectionFacadeMC.setReturnValue(null); response = new CommandResponse(); response.setResponse("Follows"); response.setActionId("12345"); result.add("Line1"); result.add("Line2"); response.setResult(result); response.setDateReceived(now); dispatcher.dispatchResponse(response); disconnectEvent = new DisconnectEvent(asteriskServer); disconnectEvent.setDateReceived(now); dispatcher.dispatchEvent(disconnectEvent); socketConnectionFacadeMC.replay(); dispatcherMC.replay(); managerReader.setSocket(socketConnectionFacade); managerReader.run(); socketConnectionFacadeMC.verify(); dispatcherMC.verify(); } public void testRunCatchingIOException() throws Exception { DisconnectEvent disconnectEvent; socketConnectionFacade.readLine(); socketConnectionFacadeMC.setThrowable(new IOException("Something happened to the network...")); disconnectEvent = new DisconnectEvent(asteriskServer); disconnectEvent.setDateReceived(now); dispatcher.dispatchEvent(disconnectEvent); socketConnectionFacadeMC.replay(); dispatcherMC.replay(); managerReader.setSocket(socketConnectionFacade); managerReader.run(); socketConnectionFacadeMC.verify(); dispatcherMC.verify(); } } |