1+ package  fr.free.nrw.commons.notification 
2+ 
3+ import  com.nhaarman.mockito_kotlin.eq 
4+ import  io.reactivex.Observable 
5+ import  org.junit.Before 
6+ import  org.junit.Test 
7+ import  org.mockito.ArgumentMatchers 
8+ import  org.mockito.Mock 
9+ import  org.mockito.Mockito 
10+ import  org.mockito.Mockito.verify 
11+ import  org.mockito.MockitoAnnotations 
12+ import  org.wikipedia.csrf.CsrfTokenClient 
13+ import  org.wikipedia.dataclient.Service 
14+ import  org.wikipedia.dataclient.mwapi.MwQueryResponse 
15+ import  org.wikipedia.dataclient.mwapi.MwQueryResult 
16+ import  org.wikipedia.notifications.Notification 
17+ 
18+ class  NotificationClientTest  {
19+ 
20+     @Mock
21+     private  lateinit  var  service:  Service 
22+     @Mock
23+     private  lateinit  var  csrfTokenClient:  CsrfTokenClient 
24+ 
25+     @Mock
26+     private  lateinit  var  mQueryResponse:  MwQueryResponse 
27+     @Mock
28+     private  lateinit  var  mQueryResult:  MwQueryResult 
29+     @Mock
30+     private  lateinit  var  mQueryResultNotificationsList:  MwQueryResult .NotificationList 
31+     @Mock
32+     private  lateinit  var  notificationsList:  List <Notification >
33+ 
34+     private  lateinit  var  notificationClient:  NotificationClient 
35+ 
36+     /* *
37+      * initial setup, test environment 
38+      */  
39+     @Before
40+     @Throws(Exception ::class )
41+     fun  setUp () {
42+         MockitoAnnotations .initMocks(this )
43+         notificationClient =  NotificationClient (service, csrfTokenClient)
44+     }
45+ 
46+     /* *
47+      * Test getNotifications 
48+      */  
49+ 
50+     @Test
51+     fun  getNotificationTest () {
52+         Mockito .`when `(service.getAllNotifications(ArgumentMatchers .anyString(), ArgumentMatchers .anyString(), ArgumentMatchers .any())).thenReturn(Observable .just(mQueryResponse))
53+         Mockito .`when `(mQueryResponse.query()).thenReturn(mQueryResult)
54+         Mockito .`when `(mQueryResult.notifications()).thenReturn(mQueryResultNotificationsList)
55+         Mockito .`when `(mQueryResultNotificationsList.list()).thenReturn(notificationsList)
56+         notificationClient.getNotifications(true )
57+         verify(service).getAllNotifications(eq(" wikidatawiki|commonswiki|enwiki"  ), eq(" read"  ), eq(null ))
58+     }
59+ 
60+     /* *
61+      * Test mark Notifications As Read 
62+      */  
63+     @Test
64+     fun  markNotificationAsReadTest () {
65+         Mockito .`when `(csrfTokenClient.tokenBlocking).thenReturn(" test"  )
66+         Mockito .`when `(service.markRead(ArgumentMatchers .anyString(), ArgumentMatchers .anyString(), ArgumentMatchers .anyString())).thenReturn(Observable .just(mQueryResponse))
67+         Mockito .`when `(mQueryResponse.success()).thenReturn(true )
68+         notificationClient.markNotificationAsRead(" test"  )
69+         verify(service).markRead(ArgumentMatchers .anyString(), ArgumentMatchers .anyString(), ArgumentMatchers .anyString())
70+     }
71+ 
72+ }
0 commit comments