@@ -80,7 +80,7 @@ public void setUp() throws Exception {
8080 date1 = Conf .parseDate ("1995-10-26T10:00:00Z" );
8181 date2 = Conf .parseDate ("2015-10-21T16:29:00Z" );
8282 date3 = Conf .parseDate ("1985-10-27T09:59:00Z" );
83-
83+
8484 Mockito .when (
8585 channelManager .getAffiliationChanges (Mockito .any (JID .class ),
8686 Mockito .any (Date .class ), Mockito .any (Date .class )))
@@ -93,6 +93,13 @@ public void setUp() throws Exception {
9393 channelManager .getNewNodeItemsForUser (Mockito .any (JID .class ),
9494 Mockito .any (Date .class ), Mockito .any (Date .class )))
9595 .thenReturn (noItems );
96+
97+ NodeAffiliation requesterAffiliation = new NodeAffiliationImpl (node1 ,
98+ jid1 , Affiliations .member , new Date ());
99+ Mockito .when (
100+ channelManager .getUserAffiliation (Mockito .anyString (),
101+ Mockito .any (JID .class ))).thenReturn (
102+ requesterAffiliation );
96103 }
97104
98105 @ Test
@@ -122,7 +129,7 @@ public void testInvalidStartTimestampResultsInBadRequestStanza()
122129 Assert .assertEquals (1 , queue .size ());
123130
124131 Packet response = queue .poll (100 , TimeUnit .MILLISECONDS );
125-
132+
126133 PacketError error = response .getError ();
127134 Assert .assertNotNull (error );
128135 Assert .assertEquals (PacketError .Type .modify , error .getType ());
@@ -172,7 +179,65 @@ public void testTwoAffiliationChangesReportAsExpected() throws Exception {
172179 channelManager .getAffiliationChanges (Mockito .any (JID .class ),
173180 Mockito .any (Date .class ), Mockito .any (Date .class )))
174181 .thenReturn (new ResultSetImpl <NodeAffiliation >(affiliations ));
182+
183+ mam .process (request );
184+
185+ Assert .assertEquals (3 , queue .size ());
186+ checkAffiliationStanza (queue .poll (), jid1 , date1 , node1 ,
187+ Affiliations .member );
188+ checkAffiliationStanza (queue .poll (), jid2 , date2 , node2 ,
189+ Affiliations .publisher );
190+
191+ IQ result = (IQ ) queue .poll ();
192+ Assert .assertEquals ("result" , result .getType ().toString ());
193+ }
194+
195+ @ Test
196+ public void testOutcastChangeReportedAsExpected () throws Exception {
197+
198+ NodeAffiliation requesterAffiliation = new NodeAffiliationImpl (node1 ,
199+ jid1 , Affiliations .owner , new Date ());
200+ Mockito .when (
201+ channelManager .getUserAffiliation (Mockito .anyString (),
202+ Mockito .any (JID .class ))).thenReturn (
203+ requesterAffiliation );
175204
205+ ArrayList <NodeAffiliation > affiliations = new ArrayList <NodeAffiliation >();
206+
207+ affiliations .add (new NodeAffiliationImpl (node1 , jid1 ,
208+ Affiliations .outcast , date1 ));
209+
210+ Mockito .when (
211+ channelManager .getAffiliationChanges (Mockito .any (JID .class ),
212+ Mockito .any (Date .class ), Mockito .any (Date .class )))
213+ .thenReturn (new ResultSetImpl <NodeAffiliation >(affiliations ));
214+
215+ mam .process (request );
216+
217+ Assert .assertEquals (2 , queue .size ());
218+ checkAffiliationStanza (queue .poll (), jid1 , date1 , node1 ,
219+ Affiliations .none );
220+
221+ IQ result = (IQ ) queue .poll ();
222+ Assert .assertEquals ("result" , result .getType ().toString ());
223+ }
224+
225+ @ Test
226+ public void testOutcastChangeReportedAsExpectedToOwnerModerator ()
227+ throws Exception {
228+
229+ ArrayList <NodeAffiliation > affiliations = new ArrayList <NodeAffiliation >();
230+
231+ affiliations .add (new NodeAffiliationImpl (node1 , jid1 ,
232+ Affiliations .member , date1 ));
233+ affiliations .add (new NodeAffiliationImpl (node2 , jid2 ,
234+ Affiliations .publisher , date2 ));
235+
236+ Mockito .when (
237+ channelManager .getAffiliationChanges (Mockito .any (JID .class ),
238+ Mockito .any (Date .class ), Mockito .any (Date .class )))
239+ .thenReturn (new ResultSetImpl <NodeAffiliation >(affiliations ));
240+
176241 mam .process (request );
177242
178243 Assert .assertEquals (3 , queue .size ());
@@ -205,7 +270,7 @@ private void checkAffiliationStanza(Packet result, JID jid, Date date,
205270 Assert .assertTrue (outgoingMessage .contains (node ));
206271 Assert .assertTrue (outgoingMessage .contains (affiliation .toString ()));
207272 }
208-
273+
209274 @ Test
210275 public void testTwoSubscriptionChangesReportAsExpected () throws Exception {
211276
@@ -219,7 +284,7 @@ public void testTwoSubscriptionChangesReportAsExpected() throws Exception {
219284 channelManager .getSubscriptionChanges (Mockito .any (JID .class ),
220285 Mockito .any (Date .class ), Mockito .any (Date .class )))
221286 .thenReturn (new ResultSetImpl <NodeSubscription >(subscriptions ));
222-
287+
223288 mam .process (request );
224289
225290 Assert .assertEquals (3 , queue .size ());
@@ -242,22 +307,24 @@ private void checkSubscriptionStanza(Packet result, JID jid, Date date,
242307 message .element ("forwarded" ).getNamespaceURI ());
243308
244309 Element delay = message .element ("forwarded" ).element ("delay" );
245- Element sub = message .element ("forwarded" ).element ("event" ).element ("subscription" );
246-
310+ Element sub = message .element ("forwarded" ).element ("event" )
311+ .element ("subscription" );
312+
247313 Assert .assertEquals (node , sub .attributeValue ("node" ));
248314 Assert .assertEquals (jid .toBareJID (), sub .attributeValue ("jid" ));
249- Assert .assertEquals (subscription , Subscriptions .valueOf (sub .attributeValue ("subscription" )));
315+ Assert .assertEquals (subscription ,
316+ Subscriptions .valueOf (sub .attributeValue ("subscription" )));
250317
251318 Assert .assertEquals (date , Conf .parseDate (delay .attributeValue ("stamp" )));
252319 }
253-
320+
254321 @ Test
255322 public void testTwoNewItemsReportAsExpected () throws Exception {
256323
257324 String item1 = "<entry>item1</entry>" ;
258325 String item2 = "<entry>item2</entry>" ;
259326 String item3 = "<entry>item3</entry>" ;
260-
327+
261328 ArrayList <NodeItem > items = new ArrayList <NodeItem >();
262329 items .add (new NodeItemImpl (node1 , "1" , date1 , item1 ));
263330 items .add (new NodeItemImpl (node1 , "2" , date2 , item2 ));
@@ -266,8 +333,9 @@ public void testTwoNewItemsReportAsExpected() throws Exception {
266333 Mockito .when (
267334 channelManager .getNewNodeItemsForUser (Mockito .any (JID .class ),
268335 Mockito .any (Date .class ), Mockito .any (Date .class )))
269- .thenReturn (new ClosableIteratorImpl <NodeItem >(items .iterator ()));
270-
336+ .thenReturn (
337+ new ClosableIteratorImpl <NodeItem >(items .iterator ()));
338+
271339 mam .process (request );
272340
273341 Assert .assertEquals (4 , queue .size ());
@@ -279,8 +347,8 @@ public void testTwoNewItemsReportAsExpected() throws Exception {
279347 Assert .assertEquals ("result" , result .getType ().toString ());
280348 }
281349
282- private void checkItemStanza (Packet result , Date date ,
283- String node , String id , String entry ) throws ParseException {
350+ private void checkItemStanza (Packet result , Date date , String node ,
351+ String id , String entry ) throws ParseException {
284352
285353 Element message = result .getElement ();
286354 Assert .assertEquals (MessageArchiveManagement .NAMESPACE_MAM , message
@@ -289,13 +357,15 @@ private void checkItemStanza(Packet result, Date date,
289357 message .element ("forwarded" ).getNamespaceURI ());
290358
291359 Element delay = message .element ("forwarded" ).element ("delay" );
292- Element items = message .element ("forwarded" ).element ("event" ).element ("items" );
360+ Element items = message .element ("forwarded" ).element ("event" )
361+ .element ("items" );
293362 Element item = items .element ("item" );
294-
363+
295364 Assert .assertEquals (id , item .attributeValue ("id" ));
296365 Assert .assertEquals (node , items .attributeValue ("node" ));
297366 // Hack to make up for SMACK
298- Assert .assertTrue (item .asXML ().replace (" xmlns=\" \" " , "" ).contains (entry ));
367+ Assert .assertTrue (item .asXML ().replace (" xmlns=\" \" " , "" )
368+ .contains (entry ));
299369
300370 Assert .assertEquals (date , Conf .parseDate (delay .attributeValue ("stamp" )));
301371 }
0 commit comments