1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package it;
18
19 import com.atlassian.jira.nimblefunctests.annotation.Restore;
20 import com.atlassian.jira.rest.client.NullProgressMonitor;
21 import com.atlassian.jira.rest.client.TestUtil;
22 import com.atlassian.jira.rest.client.auth.BasicHttpAuthenticationHandler;
23 import com.atlassian.jira.rest.client.domain.Session;
24 import com.atlassian.jira.rest.client.internal.jersey.JerseyJiraRestClient;
25 import com.atlassian.jira.rest.client.internal.json.TestConstants;
26 import org.joda.time.DateTime;
27 import org.junit.Test;
28
29 import static org.junit.Assert.*;
30 import static com.atlassian.jira.rest.client.internal.json.TestConstants.*;
31
32 @Restore(TestConstants.DEFAULT_JIRA_DUMP_FILE)
33 public class JerseySessionRestClientTest extends AbstractJerseyRestClientTest {
34
35 @Test
36 public void testValidSession() {
37 final Session session = client.getSessionClient().getCurrentSession(new NullProgressMonitor());
38 assertEquals(ADMIN_USERNAME, session.getUsername());
39
40 }
41
42 @Test
43 public void testInvalidCredentials() {
44 client = new JerseyJiraRestClient(jiraUri, new BasicHttpAuthenticationHandler(ADMIN_USERNAME, ADMIN_PASSWORD + "invalid"));
45 TestUtil.assertErrorCode(401, new Runnable() {
46 @Override
47 public void run() {
48 client.getSessionClient().getCurrentSession(new NullProgressMonitor());
49 }
50 });
51 }
52
53 @Test
54 public void testGetCurrentSession() throws Exception {
55 final Session session = client.getSessionClient().getCurrentSession(new NullProgressMonitor());
56 assertEquals(ADMIN_USERNAME, session.getUsername());
57
58
59 client = new JerseyJiraRestClient(jiraUri, new BasicHttpAuthenticationHandler(TestConstants.USER1.getName(),
60 TestConstants.USER1.getName()));
61 final Session session2 = client.getSessionClient().getCurrentSession(new NullProgressMonitor());
62 assertEquals(TestConstants.USER1.getName(), session2.getUsername());
63 final DateTime lastFailedLoginDate = session2.getLoginInfo().getLastFailedLoginDate();
64
65 final JerseyJiraRestClient client2 = new JerseyJiraRestClient(jiraUri, new BasicHttpAuthenticationHandler(TestConstants.USER1.getName(),
66 "bad-password"));
67 final DateTime now = new DateTime();
68 TestUtil.assertErrorCode(401, new Runnable() {
69 @Override
70 public void run() {
71 client2.getSessionClient().getCurrentSession(new NullProgressMonitor());
72 }
73 });
74 while (!new DateTime().isAfter(lastFailedLoginDate)) {
75 Thread.sleep(20);
76 }
77
78 final Session sessionAfterFailedLogin = client.getSessionClient().getCurrentSession(new NullProgressMonitor());
79 assertTrue(sessionAfterFailedLogin.getLoginInfo().getLastFailedLoginDate().isAfter(lastFailedLoginDate));
80 assertTrue(sessionAfterFailedLogin.getLoginInfo().getLastFailedLoginDate().isAfter(now));
81 }
82
83 }