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 ;
24+ import java .time .Duration ;
25+ import java .util .concurrent .atomic .AtomicReference ;
2126import com .google .cloud .dialogflow .v2 .Agent ;
2227import com .google .cloud .dialogflow .v2 .AgentsClient ;
2328import com .google .cloud .dialogflow .v2 .Context ;
5762import java .util .UUID ;
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,32 @@ 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 =
286+ new AtomicReference <>();
287+ await ()
288+ .atMost (Duration .ofSeconds (10 ))
289+ .pollInterval (Duration .ofSeconds (2 ))
290+ .until (
291+ () -> {
292+ DetectIntentResponse response = sessionsClient .detectIntent (request );
293+ responseRef .set (response );
294+ return !response .getQueryResult ().getQueryText ().isEmpty ();
295+ });
296+ QueryResult result = responseRef .get ().getQueryResult ();
284297 assertEquals (EVENT_NAME , result .getQueryText ());
285298 assertEquals (ACTION_NAME , result .getAction ());
286299 assertEquals (DEFAULT_LANGUAGE_CODE , result .getLanguageCode ());
287300 assertEquals (intent .getDisplayName (), result .getIntent ().getDisplayName ());
288301 }
289302
290303 @ Test
291- @ Ignore ("b/423958346" )
292304 public void listContextsTest () {
293305 ListContextsRequest request =
294306 ListContextsRequest .newBuilder ().setParent (SESSION_NAME .toString ()).build ();
295- for (Context actualContext : contextsClient .listContexts (request ).iterateAll ()) {
296- assertEquals (context .getName (), actualContext .getName ());
297- }
307+ boolean contextNameInActualContext =
308+ stream (contextsClient .listContexts (request ).iterateAll ())
309+ .anyMatch (actualContext -> context .getName ().equals (actualContext .getName ()));
310+ assertTrue (contextNameInActualContext );
298311 }
299312
300313 @ Test
0 commit comments