Update of /cvsroot/asterisk-java/asterisk-java/src/test/net/sf/asterisk/manager
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9825/src/test/net/sf/asterisk/manager
Modified Files:
ManagerWriterMock.java DefaultManagerConnectionTest.java
Log Message:
Added testReconnectWithKeepAliveAfterAuthenticationFailure
Index: ManagerWriterMock.java
===================================================================
RCS file: /cvsroot/asterisk-java/asterisk-java/src/test/net/sf/asterisk/manager/ManagerWriterMock.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -p -r1.2 -r1.3
--- ManagerWriterMock.java 5 Mar 2005 00:14:32 -0000 1.2
+++ ManagerWriterMock.java 5 Mar 2005 00:33:16 -0000 1.3
@@ -129,6 +129,7 @@ public class ManagerWriterMock implement
{
throw new RuntimeException("Expected authType 'MD5' got '" + authType + "'");
}
+
if (!expectedUsername.equals(username))
{
throw new RuntimeException("Expected username '" + expectedUsername + "' got '" + username + "'");
@@ -140,7 +141,9 @@ public class ManagerWriterMock implement
{
ManagerResponse loginResponse;
- if (key.equals(expectedKey))
+ // let testReconnectWithKeepAliveAfterAuthenticationFailure succeed after
+ // 3 unsuccessful attempts
+ if (key.equals(expectedKey) || loginActionsSent > 2)
{
loginResponse = new ManagerResponse();
loginResponse.setResponse("Success");
Index: DefaultManagerConnectionTest.java
===================================================================
RCS file: /cvsroot/asterisk-java/asterisk-java/src/test/net/sf/asterisk/manager/DefaultManagerConnectionTest.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -p -r1.2 -r1.3
--- DefaultManagerConnectionTest.java 5 Mar 2005 00:14:32 -0000 1.2
+++ DefaultManagerConnectionTest.java 5 Mar 2005 00:33:16 -0000 1.3
@@ -422,7 +422,7 @@ public class DefaultManagerConnectionTes
// fake successful login
dmc.setKeepAlive(true);
-
+
dmc.setThrowIOExceptionOnFirstSocketCreate(true);
dmc.setUsername("username");
@@ -467,7 +467,40 @@ public class DefaultManagerConnectionTes
assertEquals("unexpected other actions sent", 0, mockWriter.otherActionsSent);
assertFalse("keepAlive not disabled", dmc.getKeepAlive());
-
+
+ socketMC.verify();
+ }
+
+ public void testReconnectWithKeepAliveAfterAuthenticationFailure() throws Exception
+ {
+ DisconnectEvent disconnectEvent;
+
+ // 2 unsuccessful attempts
+ mockSocket.close();
+ mockSocket.close();
+ socketMC.replay();
+ disconnectEvent = new DisconnectEvent(asteriskServer);
+
+ // fake successful login
+ dmc.setKeepAlive(true);
+
+ // to prevent an infinite loop we will be able to log in after two unsuccessful attempts
+ // even if the password is not correct.
+ dmc.setKeepAliveAfterAuthenticationFailure(true);
+ dmc.setUsername("username");
+
+ dmc.dispatchEvent(disconnectEvent);
+
+ assertEquals("createSocket not called 3 time", 3, dmc.createSocketCalls);
+ assertEquals("createWriter not called 1 time", 1, dmc.createWriterCalls);
+ assertEquals("createReader not called 1 time", 1, dmc.createReaderCalls);
+
+ assertEquals("challenge action not sent 3 time", 3, mockWriter.challengeActionsSent);
+ assertEquals("login action not sent 3 time", 3, mockWriter.loginActionsSent);
+ assertEquals("unexpected other actions sent", 0, mockWriter.otherActionsSent);
+
+ assertTrue("keepAlive not enabled", dmc.getKeepAlive());
+
socketMC.verify();
}
|