test for 738, downgrading some warnings to info

This commit is contained in:
Alex Heneveld 2011-11-30 18:27:16 +00:00
parent 7b0353560d
commit 067ed6d6ce
1 changed files with 33 additions and 0 deletions

View File

@ -29,6 +29,7 @@ import java.io.IOException;
import java.net.ConnectException; import java.net.ConnectException;
import java.net.SocketTimeoutException; import java.net.SocketTimeoutException;
import java.util.Properties; import java.util.Properties;
import java.util.logging.Level;
import net.schmizz.sshj.SSHClient; import net.schmizz.sshj.SSHClient;
import net.schmizz.sshj.common.SSHException; import net.schmizz.sshj.common.SSHException;
@ -37,11 +38,14 @@ import net.schmizz.sshj.transport.TransportException;
import net.schmizz.sshj.userauth.UserAuthException; import net.schmizz.sshj.userauth.UserAuthException;
import org.jclouds.domain.Credentials; import org.jclouds.domain.Credentials;
import org.jclouds.logging.BufferLogger;
import org.jclouds.logging.BufferLogger.Record;
import org.jclouds.logging.slf4j.config.SLF4JLoggingModule; import org.jclouds.logging.slf4j.config.SLF4JLoggingModule;
import org.jclouds.net.IPSocket; import org.jclouds.net.IPSocket;
import org.jclouds.rest.AuthorizationException; import org.jclouds.rest.AuthorizationException;
import org.jclouds.ssh.SshClient; import org.jclouds.ssh.SshClient;
import org.jclouds.sshj.config.SshjSshClientModule; import org.jclouds.sshj.config.SshjSshClientModule;
import org.testng.Assert;
import org.testng.annotations.BeforeTest; import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test; import org.testng.annotations.Test;
@ -179,4 +183,33 @@ public class SshjSshClientTest {
assert !ssh1.shouldRetry(new RuntimeException(nex)); assert !ssh1.shouldRetry(new RuntimeException(nex));
} }
public void testRetriesLoggedAtInfoWithCount() throws Exception {
@SuppressWarnings("unchecked")
SshjSshClient.Connection<net.schmizz.sshj.SSHClient> mockConnection = createMock(SshjSshClient.Connection.class);
net.schmizz.sshj.SSHClient mockClient = createMock(net.schmizz.sshj.SSHClient.class);
mockConnection.clear(); expectLastCall();
mockConnection.create(); expectLastCall().andThrow(new ConnectionException("test1"));
mockConnection.clear(); expectLastCall();
//currently does two clears, one on failure (above) and one on next iteration (below)
mockConnection.clear(); expectLastCall();
mockConnection.create(); expectLastCall().andReturn(mockClient);
replay(mockConnection);
replay(mockClient);
ssh.sshConnection = mockConnection;
BufferLogger logcheck = new BufferLogger(ssh.getClass().getCanonicalName());
ssh.logger = logcheck;
logcheck.setLevel(Level.INFO);
ssh.connect();
Assert.assertEquals(ssh.ssh, mockClient);
verify(mockConnection);
verify(mockClient);
Record r = logcheck.assertLogContains("attempt 1 of 5");
logcheck.assertLogDoesntContain("attempt 2 of 5");
Assert.assertEquals(Level.INFO, r.getLevel());
}
} }