package org.openlmis.core.network; import org.junit.Test; import org.junit.runner.RunWith; import org.openlmis.core.LMISTestRunner; import org.robolectric.RuntimeEnvironment; import java.security.Principal; import java.security.cert.Certificate; import java.security.cert.X509Certificate; import javax.net.ssl.SSLSession; import retrofit.client.Client; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @RunWith(LMISTestRunner.class) public class LMISRestManagerTest { @Test public void shouldVerify() throws Exception { SSLSession sslSession = mock(SSLSession.class); X509Certificate certificate = mock(X509Certificate.class); Principal principal = new Principal() { @Override public String getName() { return "CN=lmis.cmam.gov.mz"; } }; when(sslSession.getPeerCertificates()).thenReturn(new Certificate[]{certificate}); when(certificate.getSubjectDN()).thenReturn(principal); LMISRestManagerMock.mockClient = mock(Client.class); LMISRestManagerMock lmisRestManagerMock = new LMISRestManagerMock(RuntimeEnvironment.application); lmisRestManagerMock.superGetSSLClient(); assertTrue(lmisRestManagerMock.okHttpClient.getHostnameVerifier().verify("whateverName", sslSession)); } }