1
2
3
4
5
6
7
8
9
10 package com.atlassian.core.user.preferences;
11
12 import com.atlassian.core.AtlassianCoreException;
13 import com.opensymphony.user.User;
14 import com.opensymphony.user.UserManager;
15 import junit.framework.TestCase;
16
17 public class TestUserPreferences extends TestCase
18 {
19 private final long SET_USER_ISSUES_PER_PAGE_VALUE = 1000;
20 private User fred;
21 private User bob;
22
23 public TestUserPreferences(String s) throws Exception
24 {
25 super(s);
26 }
27
28 protected void setUp() throws Exception
29 {
30 super.setUp();
31 fred = UserManager.getInstance().createUser("fred");
32 bob = UserManager.getInstance().createUser("bob");
33 }
34
35 protected void tearDown() throws Exception
36 {
37 fred.remove();
38 bob.remove();
39 super.tearDown();
40 }
41
42 public void testGettingNonExistentPreference()
43 {
44 Preferences preferences = DefaultPreferences.getPreferences();
45
46 assertEquals(0, preferences.getLong("this preference does not exist"));
47 }
48
49 public void testGettingMaxIssuesPreferenceNoUser()
50 {
51 User user = null;
52 Preferences preferences = new UserPreferences(user);
53
54 assertEquals(DefaultPreferences.getPreferences().getLong("test.needs.fixing"), preferences.getLong("test.needs.fixing"));
55 }
56
57 public void testSettingMaxIssuesPreferenceNoUser()
58 {
59 User user = null;
60 Preferences preferences = new UserPreferences(user);
61
62 boolean exceptionThrown = false;
63
64 try
65 {
66 preferences.setLong("test.needs.fixing", SET_USER_ISSUES_PER_PAGE_VALUE);
67 }
68 catch (AtlassianCoreException e)
69 {
70 exceptionThrown = true;
71 }
72
73 assertTrue("The exception should have been thrown because you are not allowed to set a property when there is no user", exceptionThrown);
74 }
75
76 public void testGettingMaxIssuesPreferenceWithUser() throws Exception
77 {
78 Preferences preferences = new UserPreferences(fred);
79
80 assertEquals(DefaultPreferences.getPreferences().getLong("test.needs.fixing"), preferences.getLong("test.needs.fixing"));
81
82 }
83
84 public void testSettingMaxIssuesPreferenceWithUser() throws Exception
85 {
86 Preferences preferences = new UserPreferences(fred);
87
88 try
89 {
90 preferences.setLong("test.needs.fixing", SET_USER_ISSUES_PER_PAGE_VALUE);
91 }
92 catch (AtlassianCoreException e)
93 {
94 assertTrue("This exception should not have been thrown", false);
95 }
96
97 assertEquals(preferences.getLong("test.needs.fixing"), SET_USER_ISSUES_PER_PAGE_VALUE);
98
99
100 preferences = new UserPreferences(fred);
101 assertEquals(preferences.getLong("test.needs.fixing"), SET_USER_ISSUES_PER_PAGE_VALUE);
102 }
103
104 public void testHashCodeEquals()
105 {
106 Preferences fredPrefs = new UserPreferences(fred);
107 Preferences bobPrefs = new UserPreferences(bob);
108
109 assertTrue(fredPrefs.equals(fredPrefs));
110 assertTrue(!fredPrefs.equals(fred));
111
112 Preferences guestPrefs = new UserPreferences();
113 assertTrue(guestPrefs.equals(guestPrefs));
114
115 assertEquals(fredPrefs.hashCode(), fredPrefs.hashCode());
116 }
117 }