2828import javax .ws .rs .core .Response .StatusType ;
2929
3030import static org .mockito .Matchers .anyString ;
31+ import static org .mockito .Mockito .never ;
3132import static org .mockito .Mockito .times ;
3233import static org .testng .Assert .assertNotNull ;
3334import static org .testng .Assert .assertSame ;
3940public class SessionTest {
4041
4142 public SessionStorage storageMock ;
43+ public RestClientConfiguration configurationMock ;
44+ public AuthenticationCredentials credentialsMock ;
4245 public WebTarget targetMock ;
4346 public Builder builderMock ;
4447 public Response responseMock ;
@@ -47,14 +50,18 @@ public class SessionTest {
4750 @ BeforeMethod
4851 public void before () {
4952 storageMock = Mockito .mock (SessionStorage .class );
53+ configurationMock = Mockito .mock (RestClientConfiguration .class );
54+ credentialsMock = Mockito .mock (AuthenticationCredentials .class );
5055 targetMock = Mockito .mock (WebTarget .class );
5156 builderMock = Mockito .mock (Builder .class );
5257 responseMock = Mockito .mock (Response .class );
5358 statusTypeMock = Mockito .mock (StatusType .class );
5459 }
5560
5661 @ Test
57- public void should_logout () {
62+ public void should_logout_in_rest_authentication_mode () {
63+
64+ Mockito .doReturn (configurationMock ).when (storageMock ).getConfiguration ();
5865 Mockito .doReturn (targetMock ).when (storageMock ).getRootTarget ();
5966 Mockito .doReturn (targetMock ).when (targetMock ).path (anyString ());
6067 Mockito .doReturn (builderMock ).when (targetMock ).request ();
@@ -64,15 +71,61 @@ public void should_logout() {
6471 Session session = new Session (storageMock );
6572 session .logout ();
6673
74+ Mockito .verify (storageMock ).getConfiguration ();
6775 Mockito .verify (storageMock ).getRootTarget ();
6876 Mockito .verify (targetMock ).path (anyString ());
6977 Mockito .verify (targetMock ).request ();
7078 Mockito .verify (builderMock ).get ();
7179 Mockito .verify (responseMock ).getStatus ();
7280 }
7381
82+ @ Test
83+ public void should_logout_in_spring_authentication_mode () {
84+
85+ Mockito .doReturn (configurationMock ).when (storageMock ).getConfiguration ();
86+ Mockito .doReturn (AuthenticationType .SPRING ).when (configurationMock ).getAuthenticationType ();
87+ Mockito .doReturn (targetMock ).when (storageMock ).getRootTarget ();
88+ Mockito .doReturn (targetMock ).when (targetMock ).path (anyString ());
89+ Mockito .doReturn (builderMock ).when (targetMock ).request ();
90+ Mockito .doReturn (responseMock ).when (builderMock ).get ();
91+ Mockito .doReturn (200 ).when (responseMock ).getStatus ();
92+
93+ Session session = new Session (storageMock );
94+ session .logout ();
95+
96+ Mockito .verify (storageMock ).getConfiguration ();
97+ Mockito .verify (storageMock ).getRootTarget ();
98+ Mockito .verify (targetMock ).path (anyString ());
99+ Mockito .verify (targetMock ).request ();
100+ Mockito .verify (builderMock ).get ();
101+ Mockito .verify (responseMock ).getStatus ();
102+ }
103+
104+ @ Test
105+ public void should_logout_in_basic_authentication_mode () {
106+
107+ Mockito .doReturn (configurationMock ).when (storageMock ).getConfiguration ();
108+ Mockito .doReturn (AuthenticationType .BASIC ).when (configurationMock ).getAuthenticationType ();
109+ Mockito .doReturn (credentialsMock ).when (storageMock ).getCredentials ();
110+ Session session = new Session (storageMock );
111+ session .logout ();
112+
113+ Mockito .verify (storageMock ).getConfiguration ();
114+ Mockito .verify (configurationMock ).getAuthenticationType ();
115+ Mockito .verify (storageMock , times (2 )).getCredentials ();
116+ Mockito .verify (credentialsMock ).setPassword (null );
117+ Mockito .verify (credentialsMock ).setUsername (null );
118+
119+ Mockito .verify (storageMock , never ()).getRootTarget ();
120+ Mockito .verify (targetMock , never ()).path (anyString ());
121+ Mockito .verify (targetMock , never ()).request ();
122+ Mockito .verify (builderMock , never ()).get ();
123+ Mockito .verify (responseMock , never ()).getStatus ();
124+ }
125+
74126 @ Test (expectedExceptions = RequestedRepresentationNotAvailableForResourceException .class )
75127 public void should_throw_exception_when_response_status_is_greater_Then_400 () {
128+ Mockito .doReturn (configurationMock ).when (storageMock ).getConfiguration ();
76129 Mockito .doReturn (targetMock ).when (storageMock ).getRootTarget ();
77130 Mockito .doReturn (targetMock ).when (targetMock ).path (anyString ());
78131 Mockito .doReturn (builderMock ).when (targetMock ).request ();
0 commit comments