11package com .jaspersoft .jasperserver .jaxrs .client .core ;//package com.jaspersoft.jasperserver.jaxrs.client.core;
22
3+ import java .util .HashMap ;
4+ import javax .ws .rs .client .Entity ;
5+ import javax .ws .rs .core .Cookie ;
6+ import javax .ws .rs .core .NewCookie ;
37import org .mockito .Mock ;
8+ import org .mockito .Mockito ;
49import org .mockito .internal .util .reflection .Whitebox ;
510import org .powermock .api .mockito .PowerMockito ;
611import org .powermock .core .classloader .annotations .PrepareForTest ;
2126import java .security .cert .CertificateException ;
2227import java .security .cert .X509Certificate ;
2328
29+ import static org .mockito .Matchers .any ;
30+ import static org .mockito .Matchers .anyString ;
31+ import static org .mockito .Matchers .eq ;
2432import static org .mockito .Mockito .doReturn ;
2533import static org .mockito .Mockito .reset ;
2634import static org .mockito .MockitoAnnotations .initMocks ;
@@ -49,6 +57,12 @@ public class SessionStorageTest extends PowerMockTestCase {
4957 private Invocation .Builder invocationBuilderMock ;
5058 @ Mock
5159 private Response responseMock ;
60+ @ Mock
61+ public Response .StatusType statusTypeMock ;
62+
63+ @ Mock
64+ public SSLContext sslContextMock ;
65+
5266
5367 @ BeforeMethod
5468 public void before () {
@@ -67,6 +81,58 @@ public void should_create_new_instance_session_storage() throws Exception {
6781 assertNotNull (sessionStorage );
6882 }
6983
84+ @ Test (enabled = true )
85+ public void should_init_ssl () {
86+
87+ /** - mock for static method **/
88+ PowerMockito .mockStatic (ClientBuilder .class );
89+ Mockito .when (ClientBuilder .newBuilder ()).thenReturn (builderMock );
90+
91+ /** - mocks for {@link SessionStorage#init()} method (no SSL) **/
92+ Mockito .doReturn ("https://54.83.98.156/jasperserver-pro" ).when (configurationMock ).getJasperReportsServerUrl ();
93+ Mockito .doReturn (10000 ).when (configurationMock ).getConnectionTimeout ();
94+ Mockito .doReturn (8000 ).when (configurationMock ).getReadTimeout ();
95+ Mockito .doReturn (clientMock ).when (builderMock ).build ();
96+ Mockito .doReturn (targetMock ).when (clientMock ).target ("http://54.83.98.156/jasperserver-pro" );
97+
98+ /** - mocks for {@link SessionStorage#getSecurityAttributes()} method (no SSL) **/
99+ Mockito .doReturn ("Alex" ).when (credentialsMock ).getUsername ();
100+ Mockito .doReturn ("oh, yeah!" ).when (credentialsMock ).getPassword ();
101+
102+ PowerMockito .mockStatic (EncryptionUtils .class );
103+ PowerMockito .when (EncryptionUtils .parseEncryptionParams (responseMock )).thenReturn (null );
104+ PowerMockito .when (EncryptionUtils .encryptPassword ("oh, yeah!" , "n_" , "e_" )).thenReturn ("encryptPassword" );
105+
106+ Mockito .doReturn (targetMock ).when (targetMock ).path (anyString ());
107+ Mockito .doReturn (invocationBuilderMock ).when (targetMock ).request ();
108+ Mockito .doReturn (responseMock ).when (invocationBuilderMock ).get ();
109+ Mockito .doReturn (new HashMap <String , NewCookie >() {{
110+ put ("JSESSIONID" , new NewCookie (new Cookie ("JSESSIONID" , "AC0C233ED7E9BE5DD0D4A286E6C8BBAE" )));
111+ }}).when (responseMock ).getCookies ();
112+
113+ /** - mocks for {@link SessionStorage#login()} method **/
114+ Mockito .doReturn (targetMock ).when (targetMock ).path (anyString ());
115+ Mockito .doReturn (targetMock ).when (targetMock ).property (anyString (), eq (Boolean .FALSE ));
116+ Mockito .doReturn (invocationBuilderMock ).when (targetMock ).request ();
117+ Mockito .doReturn (invocationBuilderMock ).when (invocationBuilderMock )
118+ .cookie ("JSESSIONID" , "AC0C233ED7E9BE5DD0D4A286E6C8BBAE" );
119+ Mockito .doReturn (responseMock ).when (invocationBuilderMock ).post (any (Entity .class ));
120+
121+ /** - mocks for {@link SessionStorage#parseSessionId()} method **/
122+ Mockito .doReturn ("JSESSIONID=AC0C233ED7E9BE5DD0D4A286E6C8BBAE;" )
123+ .when (responseMock )
124+ .getHeaderString ("Set-Cookie" );
125+ Mockito .doReturn (302 ).when (responseMock ).getStatus ();
126+
127+
128+ try {
129+ new SessionStorage (configurationMock , credentialsMock );
130+ } catch (Exception e ) {
131+ //Mockito.verify(logMock, times(1)).error(anyString(), any(NoSuchAlgorithmException.class));
132+ assertNotNull (e );
133+ }
134+ }
135+
70136 @ Test (expectedExceptions = RuntimeException .class )
71137 public void should_throw_an_exception_when_unable_to_init_SSL_context () throws Exception {
72138
0 commit comments