22
22
*/
23
23
package org .opensolaris .opengrok .configuration .messages ;
24
24
25
- import java .lang .reflect .Field ;
26
25
import java .lang .reflect .Method ;
27
26
import java .util .Arrays ;
28
27
import java .util .ConcurrentModificationException ;
29
28
import java .util .Date ;
30
- import java .util .Map ;
31
- import java .util .SortedSet ;
32
29
import java .util .TreeSet ;
33
30
import org .junit .After ;
34
31
import org .junit .Assert ;
@@ -44,13 +41,6 @@ private Message[] makeArray(Message... messages) {
44
41
return messages ;
45
42
}
46
43
47
- protected void sleep (long milis ) {
48
- try {
49
- Thread .sleep (milis );
50
- } catch (InterruptedException ex ) {
51
- }
52
- }
53
-
54
44
@ Before
55
45
public void setUp () {
56
46
env = RuntimeEnvironment .getInstance ();
@@ -67,25 +57,11 @@ public void testExpirationSingle() {
67
57
runSingle ();
68
58
}
69
59
70
- @ Test
71
- public void testExpirationSingleTimer () {
72
- env .startExpirationTimer ();
73
- runSingle ();
74
- env .stopExpirationTimer ();
75
- }
76
-
77
60
@ Test
78
61
public void testExpirationMultiple () {
79
62
runMultiple ();
80
63
}
81
64
82
- @ Test
83
- public void testExpirationMultipleTimer () {
84
- env .startExpirationTimer ();
85
- runMultiple ();
86
- env .stopExpirationTimer ();
87
- }
88
-
89
65
/**
90
66
* This doesn't make sense since we're testing the behaviour of the timer
91
67
* thread.
@@ -110,55 +86,52 @@ protected void runSingle() {
110
86
Assert .assertEquals (0 , env .getMessagesInTheSystem ());
111
87
NormalMessage m1 = new NormalMessage ();
112
88
m1 .addTag ("main" )
113
- .setExpiration (new Date (System .currentTimeMillis () + 500 ));
89
+ .setExpiration (new Date (System .currentTimeMillis () + 2000000 ));
114
90
m1 .setText ("text" );
115
91
env .addMessage (m1 );
116
92
Assert .assertEquals (1 , env .getMessagesInTheSystem ());
117
93
118
- for (int i = 0 ; i < 5 ; i ++) {
94
+ for (int i = 0 ; i < 50 ; i ++) {
119
95
Assert .assertEquals (1 , env .getMessagesInTheSystem ());
120
96
Assert .assertNotNull (env .getMessages ());
121
97
Assert .assertEquals (new TreeSet <Message >(Arrays .asList (makeArray (m1 ))), env .getMessages ());
122
- sleep (100 );
123
98
}
124
- sleep ( 30 );
99
+ m1 . setExpiration ( new Date ( System . currentTimeMillis () - 2000000 ) );
125
100
Assert .assertEquals (0 , env .getMessagesInTheSystem ());
126
101
}
127
102
128
103
protected void runMultiple () {
129
104
Assert .assertEquals (0 , env .getMessagesInTheSystem ());
130
105
NormalMessage m1 = new NormalMessage ();
131
106
m1 .addTag ("main" )
132
- .setExpiration (new Date (System .currentTimeMillis () + 300 ));
107
+ .setExpiration (new Date (System .currentTimeMillis () + 2000000 ));
133
108
m1 .setText ("text" );
134
109
env .addMessage (m1 );
135
110
136
111
NormalMessage m2 = new NormalMessage ();
137
112
m2 .addTag ("main" )
138
- .setExpiration (new Date (System .currentTimeMillis () + 600 ));
139
- m2 .setText ("text" );
113
+ .setExpiration (new Date (System .currentTimeMillis () + 2000000 ));
114
+ m2 .setText ("other text" );
140
115
env .addMessage (m2 );
141
116
142
117
Assert .assertEquals (2 , env .getMessagesInTheSystem ());
143
118
Assert .assertNotNull (env .getMessages ());
144
119
Assert .assertEquals (new TreeSet <Message >(Arrays .asList (makeArray (m1 , m2 ))), env .getMessages ());
145
120
146
- // expire first
147
- for (int i = 0 ; i < 3 ; i ++) {
121
+ for (int i = 0 ; i < 30 ; i ++) {
148
122
Assert .assertEquals (2 , env .getMessagesInTheSystem ());
149
123
Assert .assertNotNull (env .getMessages ());
150
124
Assert .assertEquals (new TreeSet <Message >(Arrays .asList (makeArray (m1 , m2 ))), env .getMessages ());
151
- sleep (100 );
152
125
}
153
- sleep ( 30 );
154
- // expire second
155
- for (int i = 0 ; i < 3 ; i ++) {
126
+ // expire first
127
+ m1 . setExpiration ( new Date ( System . currentTimeMillis () - 2000000 ));
128
+ for (int i = 0 ; i < 30 ; i ++) {
156
129
Assert .assertEquals (1 , env .getMessagesInTheSystem ());
157
130
Assert .assertNotNull (env .getMessages ());
158
131
Assert .assertEquals (new TreeSet <Message >(Arrays .asList (makeArray (m2 ))), env .getMessages ());
159
- sleep (100 );
160
132
}
161
- sleep (30 );
133
+ // expire second
134
+ m2 .setExpiration (new Date (System .currentTimeMillis () - 2000000 ));
162
135
Assert .assertEquals (0 , env .getMessagesInTheSystem ());
163
136
}
164
137
@@ -168,7 +141,7 @@ protected void runConcurrentModification() throws Exception {
168
141
NormalMessage m = new NormalMessage ();
169
142
m .addTag ("main" );
170
143
m .setText ("text" );
171
- m .setExpiration (new Date (current + 50000 ));
144
+ m .setExpiration (new Date (current + 2000000 ));
172
145
m .setCreated (new Date (current - 2000 - i ));
173
146
m .apply (env );
174
147
}
@@ -195,8 +168,9 @@ public void run() {
195
168
Assert .assertEquals (500 , env .getMessagesInTheSystem ());
196
169
Assert .assertEquals (500 , env .getMessages ("main" ).size ());
197
170
171
+ // expire all
198
172
for (Message m : env .getMessages ("main" )) {
199
- m .setExpiration (new Date (current - 2000 ));
173
+ m .setExpiration (new Date (current - 2000000 ));
200
174
}
201
175
202
176
for (int i = 0 ; i < 500 ; i ++) {
@@ -231,16 +205,4 @@ private void invokeExpireMessages() {
231
205
Assert .fail ("invokeRemoveAll should not throw an exception" );
232
206
}
233
207
}
234
-
235
- @ SuppressWarnings ("unchecked" )
236
- protected Map <String , SortedSet <Message >> getTagMessages () {
237
- try {
238
- Field field = RuntimeEnvironment .class .getDeclaredField ("tagMessages" );
239
- field .setAccessible (true );
240
- return (Map <String , SortedSet <Message >>) field .get (env );
241
- } catch (Throwable ex ) {
242
- Assert .fail ("invoking getTagMessages should not throw an exception" );
243
- }
244
- return null ;
245
- }
246
208
}
0 commit comments