Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions java-dialogflow/google-cloud-dialogflow/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,11 @@
<artifactId>google-cloud-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<scope>test</scope>
</dependency>
<!-- {x-generated-grpc-dependencies-start} -->
<dependency>
<groupId>com.google.api.grpc</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,10 @@
*/
package com.google.cloud.dialogflow.v2.it;

import static com.google.common.collect.Streams.stream;
import static org.awaitility.Awaitility.await;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import com.google.cloud.ServiceOptions;
import com.google.cloud.dialogflow.v2.Agent;
Expand Down Expand Up @@ -54,10 +57,10 @@
import com.google.protobuf.Struct;
import com.google.protobuf.Value;
import java.io.IOException;
import java.time.Duration;
import java.util.UUID;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;

public class ITSystemTest {
Expand Down Expand Up @@ -259,7 +262,6 @@ public void getIntentTest() {
}

@Test
@Ignore("b/423958346")
public void detectIntentTest() {
QueryInput queryInput =
QueryInput.newBuilder()
Expand All @@ -279,22 +281,28 @@ public void detectIntentTest() {
.setSession(SESSION_NAME.toString())
.setQueryInput(queryInput)
.build();
DetectIntentResponse response = sessionsClient.detectIntent(request);
QueryResult result = response.getQueryResult();
assertEquals(EVENT_NAME, result.getQueryText());
assertEquals(ACTION_NAME, result.getAction());
assertEquals(DEFAULT_LANGUAGE_CODE, result.getLanguageCode());
assertEquals(intent.getDisplayName(), result.getIntent().getDisplayName());
await()
.atMost(Duration.ofSeconds(30))
.pollInterval(Duration.ofSeconds(2))
.untilAsserted(
() -> {
DetectIntentResponse response = sessionsClient.detectIntent(request);
QueryResult result = response.getQueryResult();
assertEquals(EVENT_NAME, result.getQueryText());
assertEquals(ACTION_NAME, result.getAction());
assertEquals(DEFAULT_LANGUAGE_CODE, result.getLanguageCode());
assertEquals(intent.getDisplayName(), result.getIntent().getDisplayName());
});
}

@Test
@Ignore("b/423958346")
public void listContextsTest() {
ListContextsRequest request =
ListContextsRequest.newBuilder().setParent(SESSION_NAME.toString()).build();
for (Context actualContext : contextsClient.listContexts(request).iterateAll()) {
assertEquals(context.getName(), actualContext.getName());
}
boolean contextNameInActualContext =
stream(contextsClient.listContexts(request).iterateAll())
.anyMatch(actualContext -> context.getName().equals(actualContext.getName()));
assertTrue(contextNameInActualContext);
Comment on lines +302 to +305

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

To ensure listContextsTest is fully deflaked against eventual consistency (replication lag), we should also wrap the assertion in an awaitility block. Otherwise, if the context is not immediately visible in the list, the test will fail.

Suggested change
boolean contextNameInActualContext =
stream(contextsClient.listContexts(request).iterateAll())
.anyMatch(actualContext -> context.getName().equals(actualContext.getName()));
assertTrue(contextNameInActualContext);
await()
.atMost(Duration.ofSeconds(10))
.pollInterval(Duration.ofSeconds(2))
.untilAsserted(
() -> {
boolean contextNameInActualContext =
stream(contextsClient.listContexts(request).iterateAll())
.anyMatch(actualContext -> context.getName().equals(actualContext.getName()));
assertTrue(contextNameInActualContext);
});

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this relevant?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this one is necessary - the observed flakiness was related to the unexpected system context appearing in the list and not related to eventual consistency.

}

@Test
Expand Down
50 changes: 50 additions & 0 deletions test-results-native/test/TEST-junit-jupiter.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="JUnit Jupiter" tests="0" skipped="0" failures="0" errors="0" time="0" hostname="whowes.c.googlers.com" timestamp="2026-07-10T21:09:39">
<properties>
<property name="file.encoding" value="UTF-8"/>
<property name="file.separator" value="/"/>
<property name="java.class.path" value=""/>
<property name="java.class.version" value="61.0"/>
<property name="java.endorsed.dirs" value=""/>
<property name="java.ext.dirs" value=""/>
<property name="java.io.tmpdir" value="/tmp"/>
<property name="java.library.path" value="/usr/lib/mesa-diverted/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/mesa:/usr/lib/x86_64-linux-gnu/dri:/usr/lib/x86_64-linux-gnu/gallium-pipe:/usr/lib64:/lib64:/lib:/usr/lib"/>
<property name="java.runtime.name" value="GraalVM Runtime Environment"/>
<property name="java.runtime.version" value="17.0.9+9-jvmci-23.0-b22"/>
<property name="java.specification.name" value="Java Platform API Specification"/>
<property name="java.specification.vendor" value="Oracle Corporation"/>
<property name="java.specification.version" value="17"/>
<property name="java.vendor" value="GraalVM Community"/>
<property name="java.vendor.url" value="https://www.graalvm.org/"/>
<property name="java.vendor.version" value="GraalVM CE 17.0.9+9.1"/>
<property name="java.version" value="17.0.9"/>
<property name="java.version.date" value="2023-10-17"/>
<property name="java.vm.info" value="serial gc"/>
<property name="java.vm.name" value="Substrate VM"/>
<property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
<property name="java.vm.specification.version" value="17"/>
<property name="java.vm.vendor" value="GraalVM Community"/>
<property name="java.vm.version" value="17.0.9+9"/>
<property name="jdk.lang.Process.launchMechanism" value="FORK"/>
<property name="line.separator" value="
"/>
<property name="native.encoding" value="UTF-8"/>
<property name="org.graalvm.nativeimage.imagecode" value="runtime"/>
<property name="org.graalvm.nativeimage.kind" value="executable"/>
<property name="os.arch" value="amd64"/>
<property name="os.name" value="Linux"/>
<property name="os.version" value="6.18.14-1rodete3-amd64"/>
<property name="path.separator" value=":"/>
<property name="sun.arch.data.model" value="64"/>
<property name="sun.jnu.encoding" value="UTF-8"/>
<property name="user.dir" value="/usr/local/google/home/whowes/cloudsdk/google-cloud-java"/>
<property name="user.home" value="/usr/local/google/home/whowes"/>
<property name="user.name" value="whowes"/>
<property name="user.timezone" value="Etc/UTC"/>
</properties>
<system-out><![CDATA[
unique-id: [engine:junit-jupiter]
display-name: JUnit Jupiter
]]></system-out>
</testsuite>
104 changes: 104 additions & 0 deletions test-results-native/test/TEST-junit-vintage.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="JUnit Vintage" tests="9" skipped="0" failures="0" errors="0" time="4.314" hostname="whowes.c.googlers.com" timestamp="2026-07-10T21:09:39">
<properties>
<property name="file.encoding" value="UTF-8"/>
<property name="file.separator" value="/"/>
<property name="java.class.path" value=""/>
<property name="java.class.version" value="61.0"/>
<property name="java.endorsed.dirs" value=""/>
<property name="java.ext.dirs" value=""/>
<property name="java.io.tmpdir" value="/tmp"/>
<property name="java.library.path" value="/usr/lib/mesa-diverted/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu/mesa:/usr/lib/x86_64-linux-gnu/dri:/usr/lib/x86_64-linux-gnu/gallium-pipe:/usr/lib64:/lib64:/lib:/usr/lib"/>
<property name="java.runtime.name" value="GraalVM Runtime Environment"/>
<property name="java.runtime.version" value="17.0.9+9-jvmci-23.0-b22"/>
<property name="java.specification.name" value="Java Platform API Specification"/>
<property name="java.specification.vendor" value="Oracle Corporation"/>
<property name="java.specification.version" value="17"/>
<property name="java.vendor" value="GraalVM Community"/>
<property name="java.vendor.url" value="https://www.graalvm.org/"/>
<property name="java.vendor.version" value="GraalVM CE 17.0.9+9.1"/>
<property name="java.version" value="17.0.9"/>
<property name="java.version.date" value="2023-10-17"/>
<property name="java.vm.info" value="serial gc"/>
<property name="java.vm.name" value="Substrate VM"/>
<property name="java.vm.specification.name" value="Java Virtual Machine Specification"/>
<property name="java.vm.specification.vendor" value="Oracle Corporation"/>
<property name="java.vm.specification.version" value="17"/>
<property name="java.vm.vendor" value="GraalVM Community"/>
<property name="java.vm.version" value="17.0.9+9"/>
<property name="jdk.lang.Process.launchMechanism" value="FORK"/>
<property name="line.separator" value="
"/>
<property name="native.encoding" value="UTF-8"/>
<property name="org.graalvm.nativeimage.imagecode" value="runtime"/>
<property name="org.graalvm.nativeimage.kind" value="executable"/>
<property name="os.arch" value="amd64"/>
<property name="os.name" value="Linux"/>
<property name="os.version" value="6.18.14-1rodete3-amd64"/>
<property name="path.separator" value=":"/>
<property name="sun.arch.data.model" value="64"/>
<property name="sun.jnu.encoding" value="UTF-8"/>
<property name="user.dir" value="/usr/local/google/home/whowes/cloudsdk/google-cloud-java"/>
<property name="user.home" value="/usr/local/google/home/whowes"/>
<property name="user.name" value="whowes"/>
<property name="user.timezone" value="Etc/UTC"/>
</properties>
<testcase name="detectIntentTest" classname="com.google.cloud.dialogflow.v2.it.ITSystemTest" time="2.229">
<system-out><![CDATA[
unique-id: [engine:junit-vintage]/[runner:com.google.cloud.dialogflow.v2.it.ITSystemTest]/[test:detectIntentTest(com.google.cloud.dialogflow.v2.it.ITSystemTest)]
display-name: detectIntentTest
]]></system-out>
</testcase>
<testcase name="getContextTest" classname="com.google.cloud.dialogflow.v2.it.ITSystemTest" time="0.142">
<system-out><![CDATA[
unique-id: [engine:junit-vintage]/[runner:com.google.cloud.dialogflow.v2.it.ITSystemTest]/[test:getContextTest(com.google.cloud.dialogflow.v2.it.ITSystemTest)]
display-name: getContextTest
]]></system-out>
</testcase>
<testcase name="getAgentTest" classname="com.google.cloud.dialogflow.v2.it.ITSystemTest" time="0.192">
<system-out><![CDATA[
unique-id: [engine:junit-vintage]/[runner:com.google.cloud.dialogflow.v2.it.ITSystemTest]/[test:getAgentTest(com.google.cloud.dialogflow.v2.it.ITSystemTest)]
display-name: getAgentTest
]]></system-out>
</testcase>
<testcase name="listContextsTest" classname="com.google.cloud.dialogflow.v2.it.ITSystemTest" time="0.14">
<system-out><![CDATA[
unique-id: [engine:junit-vintage]/[runner:com.google.cloud.dialogflow.v2.it.ITSystemTest]/[test:listContextsTest(com.google.cloud.dialogflow.v2.it.ITSystemTest)]
display-name: listContextsTest
]]></system-out>
</testcase>
<testcase name="listEntityTypesTest" classname="com.google.cloud.dialogflow.v2.it.ITSystemTest" time="0.17">
<system-out><![CDATA[
unique-id: [engine:junit-vintage]/[runner:com.google.cloud.dialogflow.v2.it.ITSystemTest]/[test:listEntityTypesTest(com.google.cloud.dialogflow.v2.it.ITSystemTest)]
display-name: listEntityTypesTest
]]></system-out>
</testcase>
<testcase name="searchAgentsTest" classname="com.google.cloud.dialogflow.v2.it.ITSystemTest" time="0.06">
<system-out><![CDATA[
unique-id: [engine:junit-vintage]/[runner:com.google.cloud.dialogflow.v2.it.ITSystemTest]/[test:searchAgentsTest(com.google.cloud.dialogflow.v2.it.ITSystemTest)]
display-name: searchAgentsTest
]]></system-out>
</testcase>
<testcase name="listIntentsTest" classname="com.google.cloud.dialogflow.v2.it.ITSystemTest" time="0.086">
<system-out><![CDATA[
unique-id: [engine:junit-vintage]/[runner:com.google.cloud.dialogflow.v2.it.ITSystemTest]/[test:listIntentsTest(com.google.cloud.dialogflow.v2.it.ITSystemTest)]
display-name: listIntentsTest
]]></system-out>
</testcase>
<testcase name="getIntentTest" classname="com.google.cloud.dialogflow.v2.it.ITSystemTest" time="0.074">
<system-out><![CDATA[
unique-id: [engine:junit-vintage]/[runner:com.google.cloud.dialogflow.v2.it.ITSystemTest]/[test:getIntentTest(com.google.cloud.dialogflow.v2.it.ITSystemTest)]
display-name: getIntentTest
]]></system-out>
</testcase>
<testcase name="getEntityTypeTest" classname="com.google.cloud.dialogflow.v2.it.ITSystemTest" time="0.137">
<system-out><![CDATA[
unique-id: [engine:junit-vintage]/[runner:com.google.cloud.dialogflow.v2.it.ITSystemTest]/[test:getEntityTypeTest(com.google.cloud.dialogflow.v2.it.ITSystemTest)]
display-name: getEntityTypeTest
]]></system-out>
</testcase>
<system-out><![CDATA[
unique-id: [engine:junit-vintage]
display-name: JUnit Vintage
]]></system-out>
</testsuite>
Loading