2121
2222import com .google .cloud .dialogflow .v2beta1 .DeleteDocumentRequest ;
2323import com .google .cloud .dialogflow .v2beta1 .Document ;
24+ import com .google .cloud .dialogflow .v2beta1 .DocumentName ;
2425import com .google .cloud .dialogflow .v2beta1 .DocumentsClient ;
2526import com .google .cloud .dialogflow .v2beta1 .KnowledgeAnswers ;
2627import com .google .cloud .dialogflow .v2beta1 .KnowledgeAnswers .Answer ;
2728import com .google .cloud .dialogflow .v2beta1 .KnowledgeBase ;
29+ import com .google .cloud .dialogflow .v2beta1 .KnowledgeBaseName ;
2830import com .google .cloud .dialogflow .v2beta1 .KnowledgeBasesClient ;
2931import com .google .cloud .dialogflow .v2beta1 .ProjectName ;
30-
3132import com .google .common .collect .ImmutableList ;
3233import java .io .ByteArrayOutputStream ;
3334import java .io .PrintStream ;
4849public class KnowledgeBaseManagementIT {
4950
5051 private static String PROJECT_ID = System .getenv ().get ("GOOGLE_CLOUD_PROJECT" );
52+ private static String TEST_KNOWLEDGE_BASE_ID = "NjcyODA2NTU4MTk4OTIzMjY0MA" ;
53+ private static String TEST_DOCUMENT_ID = "NjY2NDk4ODc5ODkyNjk3OTA3Mg" ;
5154 private static String SESSION_ID = "fake_session_for_testing" ;
5255 private static String LANGUAGE_CODE = "en-US" ;
5356 private static String KNOWLEDGE_BASE_NAME = "fake_knowledge_base_name" ;
@@ -71,13 +74,19 @@ public void tearDown() throws Exception {
7174 ProjectName projectName = ProjectName .of (PROJECT_ID );
7275 for (KnowledgeBase knowledgeBase :
7376 knowledgeBasesClient .listKnowledgeBases (projectName ).iterateAll ()) {
74- // Delete any documents in the knowledge base.
75- for (Document document : documentsClient .listDocuments (
76- knowledgeBase .getName ()).iterateAll ()) {
77- documentsClient .deleteDocumentCallable ().call (
78- DeleteDocumentRequest .newBuilder ().setName (document .getName ()).build ());
77+ // DO NOT DELETE THE TEST KNOWLEDGE BASE
78+ if (!knowledgeBase .getName ().contains (TEST_KNOWLEDGE_BASE_ID )) {
79+ // Delete any documents in the knowledge base.
80+ for (Document document : documentsClient .listDocuments (
81+ knowledgeBase .getName ()).iterateAll ()) {
82+ // DO NOT DELETE THE TEST DOCUMENT
83+ if (!document .getName ().contains (TEST_DOCUMENT_ID )) {
84+ documentsClient .deleteDocumentCallable ().call (
85+ DeleteDocumentRequest .newBuilder ().setName (document .getName ()).build ());
86+ }
87+ }
88+ knowledgeBasesClient .deleteKnowledgeBase (knowledgeBase .getName ());
7989 }
80- knowledgeBasesClient .deleteKnowledgeBase (knowledgeBase .getName ());
8190 }
8291 }
8392 }
@@ -88,7 +97,7 @@ public void tearDown() throws Exception {
8897 public void testKnowledgeBase () throws Exception {
8998 // Check the knowledge base does not yet exist
9099 List <KnowledgeBase > knowledgeBases = KnowledgeBaseManagement .listKnowledgeBases (PROJECT_ID );
91- assertEquals (0 , knowledgeBases .size ());
100+ assertEquals (1 , knowledgeBases .size ());
92101
93102 // Create a Knowledge Base
94103 KnowledgeBase knowledgeBase =
@@ -101,15 +110,22 @@ public void testKnowledgeBase() throws Exception {
101110
102111 // List Knowledge Bases
103112 knowledgeBases = KnowledgeBaseManagement .listKnowledgeBases (PROJECT_ID );
104- assertEquals (1 , knowledgeBases .size ());
105- assertEquals (KNOWLEDGE_BASE_NAME , knowledgeBases .get (0 ).getDisplayName ());
113+ assertEquals (2 , knowledgeBases .size ());
114+
115+ int found = 0 ;
116+ for (KnowledgeBase knowledgeBase1 : knowledgeBases ) {
117+ if (knowledgeBase1 .getDisplayName ().equals (KNOWLEDGE_BASE_NAME )) {
118+ found += 1 ;
119+ }
120+ }
121+ assertEquals (1 , found );
106122
107123 // Delete the Knowledge Base
108124 KnowledgeBaseManagement .deleteKnowledgeBase (knowledgeBase .getName ());
109125
110126 // List Knowledge Bases (ensure delete success)
111127 knowledgeBases = KnowledgeBaseManagement .listKnowledgeBases (PROJECT_ID );
112- assertEquals (0 , knowledgeBases .size ());
128+ assertEquals (1 , knowledgeBases .size ());
113129 }
114130
115131 @ Test
@@ -147,29 +163,25 @@ public void testDocumentManagement() throws Exception {
147163
148164 @ Test
149165 public void testDetectIntentKnowledge () throws Exception {
150- // Create a Knowledge Base
151- KnowledgeBase knowledgeBase =
152- KnowledgeBaseManagement .createKnowledgeBase (PROJECT_ID , KNOWLEDGE_BASE_NAME );
153- String knowledgeBaseName = knowledgeBase .getName ();
166+ KnowledgeBaseName knowledgeBaseName = KnowledgeBaseName .newBuilder ()
167+ .setProject (PROJECT_ID ).setKnowledgeBase (TEST_KNOWLEDGE_BASE_ID ).build ();
154168
155- // Create a Document - one needs to exist in order for detectIntentKnowledge to provide answers.
156- Document document = DocumentManagement .createDocument (
157- knowledgeBaseName ,
158- DOCUMENT_BASE_NAME ,
159- "text/html" ,
160- "FAQ" ,
161- "https://cloud.google.com/storage/docs/faq" );
162- assertEquals (DOCUMENT_BASE_NAME , document .getDisplayName ());
169+ DocumentName documentName = DocumentName .newBuilder ()
170+ .setProject (PROJECT_ID )
171+ .setKnowledgeBase (TEST_KNOWLEDGE_BASE_ID )
172+ .setDocument (TEST_DOCUMENT_ID )
173+ .build ();
163174
164- Map <String , KnowledgeAnswers > allAnswers = DetectIntentKnowledge
165- . detectIntentKnowledge ( PROJECT_ID , knowledgeBaseName , SESSION_ID , LANGUAGE_CODE , TEXTS );
175+ Map <String , KnowledgeAnswers > allAnswers = DetectIntentKnowledge . detectIntentKnowledge (
176+ PROJECT_ID , knowledgeBaseName . toString () , SESSION_ID , LANGUAGE_CODE , TEXTS );
166177 assertEquals (TEXTS .size (), allAnswers .size ());
167178 int answersFound = 0 ;
168179 for (String text : TEXTS ) {
169180 KnowledgeAnswers knowledgeAnswers = allAnswers .get (text );
170181 if (knowledgeAnswers .getAnswersCount () > 0 ) {
171182 Answer answer = knowledgeAnswers .getAnswers (0 );
172- if (text .equals (answer .getFaqQuestion ()) && document .getName ().equals (answer .getSource ())) {
183+ if (text .equals (answer .getFaqQuestion ())
184+ && documentName .toString ().equals (answer .getSource ())) {
173185 answersFound ++;
174186 }
175187 }
0 commit comments