1515 */
1616package com .google .cloud .dialogflow .v2 .it ;
1717
18+ import static com .google .common .collect .Streams .stream ;
19+ import static org .awaitility .Awaitility .await ;
1820import static org .junit .Assert .assertEquals ;
21+ import static org .junit .Assert .assertTrue ;
1922
2023import com .google .cloud .ServiceOptions ;
2124import com .google .cloud .dialogflow .v2 .Agent ;
5457import com .google .protobuf .Struct ;
5558import com .google .protobuf .Value ;
5659import java .io .IOException ;
60+ import java .time .Duration ;
5761import java .util .UUID ;
62+ import java .util .concurrent .atomic .AtomicReference ;
5863import org .junit .AfterClass ;
5964import org .junit .BeforeClass ;
60- import org .junit .Ignore ;
6165import org .junit .Test ;
6266
6367public class ITSystemTest {
@@ -259,7 +263,6 @@ public void getIntentTest() {
259263 }
260264
261265 @ Test
262- @ Ignore ("b/423958346" )
263266 public void detectIntentTest () {
264267 QueryInput queryInput =
265268 QueryInput .newBuilder ()
@@ -279,22 +282,31 @@ public void detectIntentTest() {
279282 .setSession (SESSION_NAME .toString ())
280283 .setQueryInput (queryInput )
281284 .build ();
282- DetectIntentResponse response = sessionsClient .detectIntent (request );
283- QueryResult result = response .getQueryResult ();
285+ AtomicReference <DetectIntentResponse > responseRef = new AtomicReference <>();
286+ await ()
287+ .atMost (Duration .ofSeconds (30 ))
288+ .pollInterval (Duration .ofSeconds (2 ))
289+ .until (
290+ () -> {
291+ DetectIntentResponse response = sessionsClient .detectIntent (request );
292+ responseRef .set (response );
293+ return !response .getQueryResult ().getQueryText ().isEmpty ();
294+ });
295+ QueryResult result = responseRef .get ().getQueryResult ();
284296 assertEquals (EVENT_NAME , result .getQueryText ());
285297 assertEquals (ACTION_NAME , result .getAction ());
286298 assertEquals (DEFAULT_LANGUAGE_CODE , result .getLanguageCode ());
287299 assertEquals (intent .getDisplayName (), result .getIntent ().getDisplayName ());
288300 }
289301
290302 @ Test
291- @ Ignore ("b/423958346" )
292303 public void listContextsTest () {
293304 ListContextsRequest request =
294305 ListContextsRequest .newBuilder ().setParent (SESSION_NAME .toString ()).build ();
295- for (Context actualContext : contextsClient .listContexts (request ).iterateAll ()) {
296- assertEquals (context .getName (), actualContext .getName ());
297- }
306+ boolean contextNameInActualContext =
307+ stream (contextsClient .listContexts (request ).iterateAll ())
308+ .anyMatch (actualContext -> context .getName ().equals (actualContext .getName ()));
309+ assertTrue (contextNameInActualContext );
298310 }
299311
300312 @ Test
0 commit comments