Skip to content
This repository was archived by the owner on Dec 15, 2021. It is now read-only.

Commit b032b7d

Browse files
author
Danil Skachkov
committed
Add test for complex messages data
1 parent f369467 commit b032b7d

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

libai/src/test/java/ai/api/model/AIResponseTest.java

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
package ai.api.model;
22

3+
import ai.api.model.ResponseMessage.ResponsePayload;
34
import com.google.gson.Gson;
5+
import com.google.gson.JsonArray;
46
import com.google.gson.JsonElement;
57
import com.google.gson.JsonObject;
68

9+
import java.util.List;
710
import org.junit.Test;
811

912
import java.text.DateFormat;
@@ -154,4 +157,78 @@ public void ResponseToStringTest2() {
154157
System.out.printf("%s : %s%n", parameter.getKey(), parameter.getValue());
155158
}
156159
}
160+
161+
@Test
162+
public void complexResponseTest(){
163+
final String responseJson = "{\n"
164+
+ " \"id\": \"b5765188-227c-465f-abc4-38674d18e1b6\",\n"
165+
+ " \"timestamp\": \"2017-07-19T21:24:40.661Z\",\n"
166+
+ " \"lang\": \"en\",\n"
167+
+ " \"result\": {\n"
168+
+ " \"source\": \"agent\",\n"
169+
+ " \"resolvedQuery\": \"hi\",\n"
170+
+ " \"action\": \"\",\n"
171+
+ " \"actionIncomplete\": false,\n"
172+
+ " \"parameters\": {},\n"
173+
+ " \"contexts\": [],\n"
174+
+ " \"metadata\": {\n"
175+
+ " \"intentId\": \"df4522d6-5222-4bab-96e1-2218b4a12561\",\n"
176+
+ " \"webhookUsed\": \"false\",\n"
177+
+ " \"webhookForSlotFillingUsed\": \"false\",\n"
178+
+ " \"intentName\": \"hi\"\n"
179+
+ " },\n"
180+
+ " \"fulfillment\": {\n"
181+
+ " \"speech\": \"Hi there!\",\n"
182+
+ " \"messages\": [\n"
183+
+ " {\n"
184+
+ " \"type\": 0,\n"
185+
+ " \"speech\": \"Hi there!\"\n"
186+
+ " },\n"
187+
+ " {\n"
188+
+ " \"type\": 4,\n"
189+
+ " \"payload\": {\n"
190+
+ " \"native-android\": {\n"
191+
+ " \"quick-responses\": [\n"
192+
+ " \"Yes\",\n"
193+
+ " \"No\",\n"
194+
+ " \"I don't know\"\n"
195+
+ " ]\n"
196+
+ " }\n"
197+
+ " }\n"
198+
+ " }\n"
199+
+ " ]\n"
200+
+ " },\n"
201+
+ " \"score\": 1\n"
202+
+ " },\n"
203+
+ " \"status\": {\n"
204+
+ " \"code\": 200,\n"
205+
+ " \"errorType\": \"success\"\n"
206+
+ " },\n"
207+
+ " \"sessionId\": \"9bdd9303-4937-4464-82f7-3d260d7283c3\"\n"
208+
+ "}";
209+
210+
final AIResponse aiResponse = gson.fromJson(responseJson, AIResponse.class);
211+
212+
List<ResponseMessage> messages = aiResponse.getResult().getFulfillment().getMessages();
213+
214+
for (ResponseMessage message : messages) {
215+
if (message instanceof ResponsePayload) {
216+
final ResponsePayload customPayload = (ResponsePayload)message;
217+
218+
final JsonObject payload = customPayload.getPayload();
219+
220+
final JsonObject androidPayload = payload.getAsJsonObject("native-android");
221+
final JsonArray quickResponses = androidPayload.getAsJsonArray("quick-responses");
222+
223+
JsonElement firstReply = quickResponses.get(0);
224+
assertEquals("Yes", firstReply.getAsString());
225+
226+
JsonElement secondReply = quickResponses.get(1);
227+
assertEquals("No", secondReply.getAsString());
228+
229+
JsonElement thirdReply = quickResponses.get(2);
230+
assertEquals("I don't know", thirdReply.getAsString());
231+
}
232+
}
233+
}
157234
}

0 commit comments

Comments
 (0)