11package org .wise .vle .web ;
22
3+ import static junit .framework .TestCase .assertEquals ;
34import static org .easymock .EasyMock .*;
5+ import static org .junit .Assert .assertNotEquals ;
46import static org .junit .Assert .assertNotNull ;
57
68import org .easymock .EasyMockExtension ;
911import org .json .JSONException ;
1012import org .junit .jupiter .api .Test ;
1113import org .junit .jupiter .api .extension .ExtendWith ;
14+ import org .wise .portal .service .ping .CRaterPingService ;
15+ import org .wise .vle .domain .webservice .crater .CRaterPingRequest ;
1216import org .wise .vle .domain .webservice .crater .CRaterScoringRequest ;
1317import org .wise .vle .domain .webservice .crater .CRaterService ;
1418import org .wise .vle .domain .webservice .crater .CRaterVerificationRequest ;
@@ -22,8 +26,12 @@ public class CRaterControllerTest {
2226 @ Mock
2327 private CRaterService cRaterService ;
2428
29+ @ Mock
30+ private CRaterPingService cRaterPingService ;
31+
2532 private String clientId = "wise-test" ;
2633 private String itemId = "test-item-id" ;
34+ private String berkeleyItemId = "berkeley_test-item-id" ;
2735 private Long trackingId = 123456789L ;
2836
2937 @ Test
@@ -80,4 +88,51 @@ private String createScoringResponseString(String itemId, Long trackingId, Strin
8088 responseBuffer .append ("}" );
8189 return responseBuffer .toString ();
8290 }
91+
92+ @ Test
93+ public void pingItem_ItemAlreadyPinged_ShouldReturnEmpty () {
94+ CRaterPingRequest request = new CRaterPingRequest ();
95+ request .setItemId (berkeleyItemId );
96+ try {
97+ expect (cRaterPingService .hasPingedItem (berkeleyItemId )).andReturn (true );
98+ replay (cRaterService , cRaterPingService );
99+ String response = controller .pingItem (request );
100+ assertEquals (response , "" );
101+ verify (cRaterService , cRaterPingService );
102+ } catch (JSONException exception ) {
103+
104+ }
105+ }
106+
107+ @ Test
108+ public void pingItem_ItemNotPinged_ShouldReturnString () {
109+ CRaterPingRequest request = new CRaterPingRequest ();
110+ request .setItemId (berkeleyItemId );
111+ try {
112+ expect (cRaterService .getCRaterResponse (request ))
113+ .andReturn (createPingResponseString (berkeleyItemId , trackingId , clientId ));
114+ expect (cRaterPingService .hasPingedItem (berkeleyItemId )).andReturn (false );
115+ cRaterPingService .cachePingedItem (berkeleyItemId , 280 );
116+ expectLastCall ();
117+ replay (cRaterService , cRaterPingService );
118+ String response = controller .pingItem (request );
119+ assertNotNull (response );
120+ assertNotEquals (response , "" );
121+ verify (cRaterService , cRaterPingService );
122+ } catch (JSONException exception ) {
123+
124+ }
125+
126+ }
127+
128+ private String createPingResponseString (String itemId , Long trackingId , String clientId ) {
129+ StringBuffer responseBuffer = new StringBuffer ();
130+ responseBuffer .append ("{" );
131+ responseBuffer .append (" \" item_id\" : \" " + itemId + "\" ," );
132+ responseBuffer .append (" \" success\" : true," );
133+ responseBuffer .append (" \" tracking_id\" : " + trackingId + "," );
134+ responseBuffer .append (" \" client_id\" : \" " + clientId + "\" " );
135+ responseBuffer .append ("}" );
136+ return responseBuffer .toString ();
137+ }
83138}
0 commit comments