ibm_watson 1.3.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +36 -5
  3. data/lib/ibm_watson/assistant_v1.rb +225 -199
  4. data/lib/ibm_watson/assistant_v2.rb +228 -21
  5. data/lib/ibm_watson/compare_comply_v1.rb +43 -24
  6. data/lib/ibm_watson/discovery_v1.rb +144 -19
  7. data/lib/ibm_watson/discovery_v2.rb +742 -23
  8. data/lib/ibm_watson/language_translator_v3.rb +216 -64
  9. data/lib/ibm_watson/natural_language_classifier_v1.rb +11 -3
  10. data/lib/ibm_watson/natural_language_understanding_v1.rb +32 -26
  11. data/lib/ibm_watson/personality_insights_v3.rb +34 -19
  12. data/lib/ibm_watson/speech_to_text_v1.rb +239 -106
  13. data/lib/ibm_watson/text_to_speech_v1.rb +139 -146
  14. data/lib/ibm_watson/tone_analyzer_v3.rb +19 -14
  15. data/lib/ibm_watson/version.rb +1 -1
  16. data/lib/ibm_watson/visual_recognition_v3.rb +40 -17
  17. data/lib/ibm_watson/visual_recognition_v4.rb +110 -18
  18. data/test/integration/test_assistant_v1.rb +9 -0
  19. data/test/integration/test_assistant_v2.rb +34 -0
  20. data/test/integration/test_compare_comply_v1.rb +1 -12
  21. data/test/integration/test_discovery_v2.rb +132 -6
  22. data/test/integration/test_language_translator_v3.rb +5 -0
  23. data/test/integration/test_text_to_speech_v1.rb +3 -3
  24. data/test/integration/test_visual_recognition_v4.rb +9 -0
  25. data/test/unit/test_assistant_v1.rb +149 -98
  26. data/test/unit/test_assistant_v2.rb +153 -8
  27. data/test/unit/test_compare_comply_v1.rb +20 -20
  28. data/test/unit/test_discovery_v1.rb +125 -125
  29. data/test/unit/test_discovery_v2.rb +262 -29
  30. data/test/unit/test_language_translator_v3.rb +85 -24
  31. data/test/unit/test_natural_language_classifier_v1.rb +17 -17
  32. data/test/unit/test_natural_language_understanding_v1.rb +10 -10
  33. data/test/unit/test_personality_insights_v3.rb +14 -14
  34. data/test/unit/test_speech_to_text_v1.rb +97 -97
  35. data/test/unit/test_text_to_speech_v1.rb +48 -48
  36. data/test/unit/test_tone_analyzer_v3.rb +12 -12
  37. data/test/unit/test_visual_recognition_v3.rb +16 -16
  38. data/test/unit/test_visual_recognition_v4.rb +56 -38
  39. metadata +3 -3
@@ -16,16 +16,16 @@ class DiscoveryV2Test < Minitest::Test
16
16
  @service = IBMWatson::DiscoveryV2.new(
17
17
  version: "2018-03-05",
18
18
  authenticator: authenticator,
19
- service_url: "https://gateway.watsonplatform.net/discovery/api"
19
+ service_url: "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api"
20
20
  )
21
21
  end
22
22
 
23
23
  def test_collections
24
- stub_request(:get, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/collections?version=2018-03-05")
24
+ stub_request(:get, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/collections?version=2018-03-05")
25
25
  .with(
26
26
  headers: {
27
27
  "Accept" => "application/json",
28
- "Host" => "gateway.watsonplatform.net"
28
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
29
29
  }
30
30
  ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
31
31
  service_response = service.list_collections(
@@ -35,12 +35,12 @@ class DiscoveryV2Test < Minitest::Test
35
35
  end
36
36
 
37
37
  def test_query
38
- stub_request(:post, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/query?version=2018-03-05")
38
+ stub_request(:post, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/query?version=2018-03-05")
39
39
  .with(
40
40
  body: "{\"count\":10}",
41
41
  headers: {
42
42
  "Accept" => "application/json",
43
- "Host" => "gateway.watsonplatform.net"
43
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
44
44
  }
45
45
  ).to_return(status: 200, body: { body: "hello" }.to_json, headers: { "Content-Type" => "application/json" })
46
46
  service_response = service.query(
@@ -51,11 +51,11 @@ class DiscoveryV2Test < Minitest::Test
51
51
  end
52
52
 
53
53
  def test_get_autocompletion
54
- stub_request(:get, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/autocompletion?prefix=hi&version=2018-03-05")
54
+ stub_request(:get, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/autocompletion?prefix=hi&version=2018-03-05")
55
55
  .with(
56
56
  headers: {
57
57
  "Accept" => "application/json",
58
- "Host" => "gateway.watsonplatform.net"
58
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
59
59
  }
60
60
  ).to_return(status: 200, body: { "received" => "true" }.to_json, headers: { "Content-Type" => "application/json" })
61
61
  service_response = service.get_autocompletion(
@@ -66,11 +66,11 @@ class DiscoveryV2Test < Minitest::Test
66
66
  end
67
67
 
68
68
  def test_query_notices
69
- stub_request(:get, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/notices?version=2018-03-05")
69
+ stub_request(:get, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/notices?version=2018-03-05")
70
70
  .with(
71
71
  headers: {
72
72
  "Accept" => "application/json",
73
- "Host" => "gateway.watsonplatform.net"
73
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
74
74
  }
75
75
  ).to_return(status: 200, body: { "received" => "true" }.to_json, headers: { "Content-Type" => "application/json" })
76
76
  service_response = service.query_notices(
@@ -80,11 +80,11 @@ class DiscoveryV2Test < Minitest::Test
80
80
  end
81
81
 
82
82
  def test_list_fields
83
- stub_request(:get, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/fields?collection_ids=collid&version=2018-03-05")
83
+ stub_request(:get, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/fields?collection_ids=collid&version=2018-03-05")
84
84
  .with(
85
85
  headers: {
86
86
  "Accept" => "application/json",
87
- "Host" => "gateway.watsonplatform.net"
87
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
88
88
  }
89
89
  ).to_return(status: 200, body: { "received" => "true" }.to_json, headers: { "Content-Type" => "application/json" })
90
90
  service_response = service.list_fields(
@@ -95,11 +95,11 @@ class DiscoveryV2Test < Minitest::Test
95
95
  end
96
96
 
97
97
  def test_get_component_settings
98
- stub_request(:get, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/component_settings?version=2018-03-05")
98
+ stub_request(:get, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/component_settings?version=2018-03-05")
99
99
  .with(
100
100
  headers: {
101
101
  "Accept" => "application/json",
102
- "Host" => "gateway.watsonplatform.net"
102
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
103
103
  }
104
104
  ).to_return(status: 200, body: { "received" => "true" }.to_json, headers: { "Content-Type" => "application/json" })
105
105
  service_response = service.get_component_settings(
@@ -109,11 +109,11 @@ class DiscoveryV2Test < Minitest::Test
109
109
  end
110
110
 
111
111
  def test_add_document
112
- stub_request(:post, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/collections/collid/documents?version=2018-03-05")
112
+ stub_request(:post, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/collections/collid/documents?version=2018-03-05")
113
113
  .with(
114
114
  headers: {
115
115
  "Accept" => "application/json",
116
- "Host" => "gateway.watsonplatform.net"
116
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
117
117
  }
118
118
  ).to_return(status: 200, body: { body: [] }.to_json, headers: { "Content-Type" => "application/json" })
119
119
  File.open(Dir.getwd + "/resources/simple.html") do |file_info|
@@ -127,11 +127,11 @@ class DiscoveryV2Test < Minitest::Test
127
127
  end
128
128
 
129
129
  def test_update_document
130
- stub_request(:post, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/collections/collid/documents/docid?version=2018-03-05")
130
+ stub_request(:post, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/collections/collid/documents/docid?version=2018-03-05")
131
131
  .with(
132
132
  headers: {
133
133
  "Accept" => "application/json",
134
- "Host" => "gateway.watsonplatform.net"
134
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
135
135
  }
136
136
  ).to_return(status: 200, body: { body: [] }.to_json, headers: { "Content-Type" => "application/json" })
137
137
  service_response = service.update_document(
@@ -145,11 +145,11 @@ class DiscoveryV2Test < Minitest::Test
145
145
  end
146
146
 
147
147
  def test_delete_document
148
- stub_request(:delete, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/collections/collid/documents/docid?version=2018-03-05")
148
+ stub_request(:delete, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/collections/collid/documents/docid?version=2018-03-05")
149
149
  .with(
150
150
  headers: {
151
151
  "Accept" => "application/json",
152
- "Host" => "gateway.watsonplatform.net"
152
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
153
153
  }
154
154
  ).to_return(status: 200, body: { body: [] }.to_json, headers: { "Content-Type" => "application/json" })
155
155
  service_response = service.delete_document(
@@ -161,11 +161,11 @@ class DiscoveryV2Test < Minitest::Test
161
161
  end
162
162
 
163
163
  def test_list_training_queries
164
- stub_request(:get, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/training_data/queries?version=2018-03-05")
164
+ stub_request(:get, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/training_data/queries?version=2018-03-05")
165
165
  .with(
166
166
  headers: {
167
167
  "Accept" => "application/json",
168
- "Host" => "gateway.watsonplatform.net"
168
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
169
169
  }
170
170
  ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
171
171
  service_response = service.list_training_queries(
@@ -175,10 +175,10 @@ class DiscoveryV2Test < Minitest::Test
175
175
  end
176
176
 
177
177
  def test_delete_training_queries
178
- stub_request(:delete, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/training_data/queries?version=2018-03-05")
178
+ stub_request(:delete, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/training_data/queries?version=2018-03-05")
179
179
  .with(
180
180
  headers: {
181
- "Host" => "gateway.watsonplatform.net"
181
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
182
182
  }
183
183
  ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
184
184
  service_response = service.delete_training_queries(
@@ -188,11 +188,11 @@ class DiscoveryV2Test < Minitest::Test
188
188
  end
189
189
 
190
190
  def test_create_training_query
191
- stub_request(:post, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/training_data/queries?version=2018-03-05")
191
+ stub_request(:post, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/training_data/queries?version=2018-03-05")
192
192
  .with(
193
193
  headers: {
194
194
  "Accept" => "application/json",
195
- "Host" => "gateway.watsonplatform.net"
195
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
196
196
  }
197
197
  ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
198
198
  service_response = service.create_training_query(
@@ -204,11 +204,11 @@ class DiscoveryV2Test < Minitest::Test
204
204
  end
205
205
 
206
206
  def test_get_training_query
207
- stub_request(:get, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/training_data/queries/queryid?version=2018-03-05")
207
+ stub_request(:get, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/training_data/queries/queryid?version=2018-03-05")
208
208
  .with(
209
209
  headers: {
210
210
  "Accept" => "application/json",
211
- "Host" => "gateway.watsonplatform.net"
211
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
212
212
  }
213
213
  ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
214
214
  service_response = service.get_training_query(
@@ -219,11 +219,11 @@ class DiscoveryV2Test < Minitest::Test
219
219
  end
220
220
 
221
221
  def test_update_training_query
222
- stub_request(:post, "https://gateway.watsonplatform.net/discovery/api/v2/projects/project/training_data/queries/queryid?version=2018-03-05")
222
+ stub_request(:post, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/training_data/queries/queryid?version=2018-03-05")
223
223
  .with(
224
224
  headers: {
225
225
  "Accept" => "application/json",
226
- "Host" => "gateway.watsonplatform.net"
226
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
227
227
  }
228
228
  ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
229
229
  service_response = service.update_training_query(
@@ -234,4 +234,237 @@ class DiscoveryV2Test < Minitest::Test
234
234
  )
235
235
  assert_equal({ "body" => "hello" }, service_response.result)
236
236
  end
237
+
238
+ def test_create_collection
239
+ stub_request(:post, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/collections?version=2018-03-05")
240
+ .with(
241
+ headers: {
242
+ "Accept" => "application/json",
243
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
244
+ }
245
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
246
+ service_response = service.create_collection(
247
+ project_id: "project",
248
+ name: "collection1"
249
+ )
250
+ assert_equal({ "body" => "hello" }, service_response.result)
251
+ end
252
+
253
+ def test_get_collection
254
+ stub_request(:get, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/collections/collection?version=2018-03-05")
255
+ .with(
256
+ headers: {
257
+ "Accept" => "application/json",
258
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
259
+ }
260
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
261
+ service_response = service.get_collection(
262
+ project_id: "project",
263
+ collection_id: "collection"
264
+ )
265
+ assert_equal({ "body" => "hello" }, service_response.result)
266
+ end
267
+
268
+ def test_update_collection
269
+ stub_request(:post, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/collections/collection?version=2018-03-05")
270
+ .with(
271
+ headers: {
272
+ "Accept" => "application/json",
273
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
274
+ }
275
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
276
+ service_response = service.update_collection(
277
+ project_id: "project",
278
+ collection_id: "collection"
279
+ )
280
+ assert_equal({ "body" => "hello" }, service_response.result)
281
+ end
282
+
283
+ def test_delete_collection
284
+ stub_request(:delete, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/collections/collection?version=2018-03-05")
285
+ .with(
286
+ headers: {
287
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
288
+ }
289
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
290
+ service_response = service.delete_collection(
291
+ project_id: "project",
292
+ collection_id: "collection"
293
+ )
294
+ assert_nil(service_response)
295
+ end
296
+
297
+ def test_analyze_document
298
+ # skip "not available yet"
299
+
300
+ stub_request(:post, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/collections/collid/analyze?version=2018-03-05")
301
+ .with(
302
+ headers: {
303
+ "Accept" => "application/json",
304
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
305
+ }
306
+ ).to_return(status: 200, body: { body: [] }.to_json, headers: { "Content-Type" => "application/json" })
307
+ service_response = service.analyze_document(
308
+ project_id: "project",
309
+ collection_id: "collid",
310
+ file: "file",
311
+ filename: "file.name"
312
+ )
313
+ assert_equal({ "body" => [] }, service_response.result)
314
+ end
315
+
316
+ def test_delete_user_data
317
+ stub_request(:delete, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/user_data?customer_id=customer&version=2018-03-05")
318
+ .with(
319
+ headers: {
320
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
321
+ }
322
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
323
+ service_response = service.delete_user_data(
324
+ customer_id: "customer"
325
+ )
326
+ assert_nil(service_response)
327
+ end
328
+
329
+ def test_create_enrichment
330
+ stub_request(:post, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/enrichments?version=2018-03-05")
331
+ .with(
332
+ headers: {
333
+ "Accept" => "application/json",
334
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
335
+ }
336
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
337
+ service_response = service.create_enrichment(
338
+ project_id: "project",
339
+ enrichment: "enrichment1"
340
+ )
341
+ assert_equal({ "body" => "hello" }, service_response.result)
342
+ end
343
+
344
+ def test_list_enrichments
345
+ stub_request(:get, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/enrichments?version=2018-03-05")
346
+ .with(
347
+ headers: {
348
+ "Accept" => "application/json",
349
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
350
+ }
351
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
352
+ service_response = service.list_enrichments(
353
+ project_id: "project"
354
+ )
355
+ assert_equal({ "body" => "hello" }, service_response.result)
356
+ end
357
+
358
+ def test_get_enrichment
359
+ stub_request(:get, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/enrichments/enrichment?version=2018-03-05")
360
+ .with(
361
+ headers: {
362
+ "Accept" => "application/json",
363
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
364
+ }
365
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
366
+ service_response = service.get_enrichment(
367
+ project_id: "project",
368
+ enrichment_id: "enrichment"
369
+ )
370
+ assert_equal({ "body" => "hello" }, service_response.result)
371
+ end
372
+
373
+ def test_update_enrichment
374
+ stub_request(:post, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/enrichments/enrichment?version=2018-03-05")
375
+ .with(
376
+ headers: {
377
+ "Accept" => "application/json",
378
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
379
+ }
380
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
381
+ service_response = service.update_enrichment(
382
+ project_id: "project",
383
+ enrichment_id: "enrichment",
384
+ name: "newname"
385
+ )
386
+ assert_equal({ "body" => "hello" }, service_response.result)
387
+ end
388
+
389
+ def test_delete_enrichment
390
+ stub_request(:delete, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project/enrichments/enrichment?version=2018-03-05")
391
+ .with(
392
+ headers: {
393
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
394
+ }
395
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
396
+ service_response = service.delete_enrichment(
397
+ project_id: "project",
398
+ enrichment_id: "enrichment"
399
+ )
400
+ assert_nil(service_response)
401
+ end
402
+
403
+ def test_create_project
404
+ stub_request(:post, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects?version=2018-03-05")
405
+ .with(
406
+ headers: {
407
+ "Accept" => "application/json",
408
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
409
+ }
410
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
411
+ service_response = service.create_project(
412
+ name: "projectname",
413
+ type: "new"
414
+ )
415
+ assert_equal({ "body" => "hello" }, service_response.result)
416
+ end
417
+
418
+ def test_list_projects
419
+ stub_request(:get, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects?version=2018-03-05")
420
+ .with(
421
+ headers: {
422
+ "Accept" => "application/json",
423
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
424
+ }
425
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
426
+ service_response = service.list_projects
427
+ assert_equal({ "body" => "hello" }, service_response.result)
428
+ end
429
+
430
+ def test_get_project
431
+ stub_request(:get, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project?version=2018-03-05")
432
+ .with(
433
+ headers: {
434
+ "Accept" => "application/json",
435
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
436
+ }
437
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
438
+ service_response = service.get_project(
439
+ project_id: "project"
440
+ )
441
+ assert_equal({ "body" => "hello" }, service_response.result)
442
+ end
443
+
444
+ def test_update_project
445
+ stub_request(:post, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project?version=2018-03-05")
446
+ .with(
447
+ headers: {
448
+ "Accept" => "application/json",
449
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
450
+ }
451
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
452
+ service_response = service.update_project(
453
+ project_id: "project"
454
+ )
455
+ assert_equal({ "body" => "hello" }, service_response.result)
456
+ end
457
+
458
+ def test_delete_project
459
+ stub_request(:delete, "https://api.us-south.discovery.watson.cloud.ibm.com/discovery/api/v2/projects/project?version=2018-03-05")
460
+ .with(
461
+ headers: {
462
+ "Host" => "api.us-south.discovery.watson.cloud.ibm.com"
463
+ }
464
+ ).to_return(status: 200, body: { "body" => "hello" }.to_json, headers: { "Content-Type" => "application/json" })
465
+ service_response = service.delete_project(
466
+ project_id: "project"
467
+ )
468
+ assert_nil(service_response)
469
+ end
237
470
  end
@@ -60,14 +60,14 @@ class LanguageTranslatorV3Test < Minitest::Test
60
60
  "translations" => [{ "translation" => "Hello, how are you ? \u20ac" }],
61
61
  "word_count" => 4
62
62
  }
63
- stub_request(:post, "https://gateway.watsonplatform.net/language-translator/api/v3/translate?version=2018-05-01")
63
+ stub_request(:post, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/translate?version=2018-05-01")
64
64
  .with(
65
65
  body: "{\"text\":\"Hola, cómo estás? €\",\"source\":\"es\",\"target\":\"en\"}",
66
66
  headers: {
67
67
  "Accept" => "application/json",
68
68
  "Authorization" => "Bearer " + token_response["access_token"],
69
69
  "Content-Type" => "application/json",
70
- "Host" => "gateway.watsonplatform.net"
70
+ "Host" => "api.us-south.language-translator.watson.cloud.ibm.com"
71
71
  }
72
72
  ).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
73
73
  service_response = service.translate(
@@ -109,14 +109,14 @@ class LanguageTranslatorV3Test < Minitest::Test
109
109
  ],
110
110
  "word_count" => 5
111
111
  }
112
- stub_request(:post, "https://gateway.watsonplatform.net/language-translator/api/v3/translate?version=2018-05-01")
112
+ stub_request(:post, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/translate?version=2018-05-01")
113
113
  .with(
114
114
  body: "{\"text\":\"Messi is the best ever\",\"model_id\":\"en-es-conversational\"}",
115
115
  headers: {
116
116
  "Accept" => "application/json",
117
117
  "Authorization" => "Bearer " + token_response["access_token"],
118
118
  "Content-Type" => "application/json",
119
- "Host" => "gateway.watsonplatform.net"
119
+ "Host" => "api.us-south.language-translator.watson.cloud.ibm.com"
120
120
  }
121
121
  ).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
122
122
  service_response = service.translate(
@@ -164,14 +164,14 @@ class LanguageTranslatorV3Test < Minitest::Test
164
164
  }
165
165
  ]
166
166
  }
167
- stub_request(:post, "https://gateway.watsonplatform.net/language-translator/api/v3/identify?version=2018-05-01")
167
+ stub_request(:post, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/identify?version=2018-05-01")
168
168
  .with(
169
169
  body: "祝你有美好的一天",
170
170
  headers: {
171
171
  "Accept" => "application/json",
172
172
  "Authorization" => "Bearer " + token_response["access_token"],
173
173
  "Content-Type" => "text/plain",
174
- "Host" => "gateway.watsonplatform.net"
174
+ "Host" => "api.us-south.language-translator.watson.cloud.ibm.com"
175
175
  }
176
176
  ).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
177
177
  service_response = service.identify(
@@ -230,7 +230,7 @@ class LanguageTranslatorV3Test < Minitest::Test
230
230
  }
231
231
  ]
232
232
  }
233
- stub_request(:get, "https://gateway.watsonplatform.net/language-translator/api/v3/identifiable_languages?version=2018-05-01")
233
+ stub_request(:get, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/identifiable_languages?version=2018-05-01")
234
234
  .with(
235
235
  headers: {
236
236
  "Accept" => "application/json",
@@ -275,12 +275,12 @@ class LanguageTranslatorV3Test < Minitest::Test
275
275
  "default_model" => false,
276
276
  "name" => "test_glossary"
277
277
  }
278
- stub_request(:post, "https://gateway.watsonplatform.net/language-translator/api/v3/models?base_model_id=en-fr&name=test_glossary&version=2018-05-01")
278
+ stub_request(:post, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/models?base_model_id=en-fr&name=test_glossary&version=2018-05-01")
279
279
  .with(
280
280
  headers: {
281
281
  "Accept" => "application/json",
282
282
  "Authorization" => "Bearer " + token_response["access_token"],
283
- "Host" => "gateway.watsonplatform.net"
283
+ "Host" => "api.us-south.language-translator.watson.cloud.ibm.com"
284
284
  }
285
285
  ).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
286
286
  custom_model = File.open(Dir.getwd + "/resources/language_translator_model.tmx")
@@ -333,12 +333,12 @@ class LanguageTranslatorV3Test < Minitest::Test
333
333
  expected = {
334
334
  "status" => "OK"
335
335
  }
336
- stub_request(:delete, "https://gateway.watsonplatform.net/language-translator/api/v3/models/en-es-conversational?version=2018-05-01")
336
+ stub_request(:delete, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/models/en-es-conversational?version=2018-05-01")
337
337
  .with(
338
338
  headers: {
339
339
  "Accept" => "application/json",
340
340
  "Authorization" => "Bearer " + token_response["access_token"],
341
- "Host" => "gateway.watsonplatform.net"
341
+ "Host" => "api.us-south.language-translator.watson.cloud.ibm.com"
342
342
  }
343
343
  ).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
344
344
  service_response = service.delete_model(
@@ -381,12 +381,12 @@ class LanguageTranslatorV3Test < Minitest::Test
381
381
  "default_model" => false,
382
382
  "name" => "en-es-conversational"
383
383
  }
384
- stub_request(:get, "https://gateway.watsonplatform.net/language-translator/api/v3/models/en-es-conversational?version=2018-05-01")
384
+ stub_request(:get, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/models/en-es-conversational?version=2018-05-01")
385
385
  .with(
386
386
  headers: {
387
387
  "Accept" => "application/json",
388
388
  "Authorization" => "Bearer " + token_response["access_token"],
389
- "Host" => "gateway.watsonplatform.net"
389
+ "Host" => "api.us-south.language-translator.watson.cloud.ibm.com"
390
390
  }
391
391
  ).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
392
392
  service_response = service.get_model(
@@ -445,12 +445,12 @@ class LanguageTranslatorV3Test < Minitest::Test
445
445
  }
446
446
  ]
447
447
  }
448
- stub_request(:get, "https://gateway.watsonplatform.net/language-translator/api/v3/models?version=2018-05-01")
448
+ stub_request(:get, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/models?version=2018-05-01")
449
449
  .with(
450
450
  headers: {
451
451
  "Accept" => "application/json",
452
452
  "Authorization" => "Bearer " + token_response["access_token"],
453
- "Host" => "gateway.watsonplatform.net"
453
+ "Host" => "api.us-south.language-translator.watson.cloud.ibm.com"
454
454
  }
455
455
  ).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
456
456
  service_response = service.list_models
@@ -480,12 +480,12 @@ class LanguageTranslatorV3Test < Minitest::Test
480
480
  authenticator: authenticator
481
481
  )
482
482
  expected = {}
483
- stub_request(:get, "https://gateway.watsonplatform.net/language-translator/api/v3/documents?version=2018-05-01")
483
+ stub_request(:get, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/documents?version=2018-05-01")
484
484
  .with(
485
485
  headers: {
486
486
  "Accept" => "application/json",
487
487
  "Authorization" => "Bearer " + token_response["access_token"],
488
- "Host" => "gateway.watsonplatform.net"
488
+ "Host" => "api.us-south.language-translator.watson.cloud.ibm.com"
489
489
  }
490
490
  ).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
491
491
  service_response = service.list_documents
@@ -514,7 +514,7 @@ class LanguageTranslatorV3Test < Minitest::Test
514
514
  version: "2018-05-01",
515
515
  authenticator: authenticator
516
516
  )
517
- stub_request(:post, "https://gateway.watsonplatform.net/language-translator/api/v3/documents?version=2018-05-01")
517
+ stub_request(:post, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/documents?version=2018-05-01")
518
518
  .with do |req|
519
519
  assert_equal req.headers["Accept"], "application/json"
520
520
  assert_match %r{\Amultipart/form-data}, req.headers["Content-Type"]
@@ -546,12 +546,12 @@ class LanguageTranslatorV3Test < Minitest::Test
546
546
  authenticator: authenticator
547
547
  )
548
548
  expected = {}
549
- stub_request(:get, "https://gateway.watsonplatform.net/language-translator/api/v3/documents/id?version=2018-05-01")
549
+ stub_request(:get, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/documents/id?version=2018-05-01")
550
550
  .with(
551
551
  headers: {
552
552
  "Accept" => "application/json",
553
553
  "Authorization" => "Bearer " + token_response["access_token"],
554
- "Host" => "gateway.watsonplatform.net"
554
+ "Host" => "api.us-south.language-translator.watson.cloud.ibm.com"
555
555
  }
556
556
  ).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
557
557
  service_response = service.get_document_status(document_id: "id")
@@ -581,12 +581,12 @@ class LanguageTranslatorV3Test < Minitest::Test
581
581
  authenticator: authenticator
582
582
  )
583
583
  expected = {}
584
- stub_request(:get, "https://gateway.watsonplatform.net/language-translator/api/v3/documents/id/translated_document?version=2018-05-01")
584
+ stub_request(:get, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/documents/id/translated_document?version=2018-05-01")
585
585
  .with(
586
586
  headers: {
587
587
  "Accept" => "application/json",
588
588
  "Authorization" => "Bearer " + token_response["access_token"],
589
- "Host" => "gateway.watsonplatform.net"
589
+ "Host" => "api.us-south.language-translator.watson.cloud.ibm.com"
590
590
  }
591
591
  ).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
592
592
  service_response = service.get_translated_document(document_id: "id")
@@ -616,14 +616,75 @@ class LanguageTranslatorV3Test < Minitest::Test
616
616
  authenticator: authenticator
617
617
  )
618
618
  expected = {}
619
- stub_request(:delete, "https://gateway.watsonplatform.net/language-translator/api/v3/documents/id?version=2018-05-01")
619
+ stub_request(:delete, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/documents/id?version=2018-05-01")
620
620
  .with(
621
621
  headers: {
622
622
  "Authorization" => "Bearer " + token_response["access_token"],
623
- "Host" => "gateway.watsonplatform.net"
623
+ "Host" => "api.us-south.language-translator.watson.cloud.ibm.com"
624
624
  }
625
625
  ).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
626
626
  service_response = service.delete_document(document_id: "id")
627
627
  assert_nil(service_response)
628
628
  end
629
+
630
+ def test_list_languages
631
+ token_response = token
632
+ stub_request(:post, "https://iam.cloud.ibm.com/identity/token")
633
+ .with(
634
+ body: { "apikey" => "iam_apikey", "grant_type" => "urn:ibm:params:oauth:grant-type:apikey", "response_type" => "cloud_iam" },
635
+ headers: {
636
+ "Accept" => "application/json",
637
+ "Content-Type" => "application/x-www-form-urlencoded",
638
+ "Host" => "iam.cloud.ibm.com"
639
+ }
640
+ ).to_return(
641
+ status: 200,
642
+ body: token_response.to_json,
643
+ headers: {}
644
+ )
645
+ authenticator = IBMWatson::Authenticators::IamAuthenticator.new(
646
+ apikey: "iam_apikey"
647
+ )
648
+ service = IBMWatson::LanguageTranslatorV3.new(
649
+ version: "2018-05-01",
650
+ authenticator: authenticator
651
+ )
652
+ expected = {
653
+ "languages" => [
654
+ {
655
+ "name" => "German",
656
+ "language" => "de"
657
+ },
658
+ {
659
+ "name" => "Greek",
660
+ "language" => "el"
661
+ },
662
+ {
663
+ "name" => "English",
664
+ "language" => "en"
665
+ },
666
+ {
667
+ "name" => "Esperanto",
668
+ "language" => "eo"
669
+ },
670
+ {
671
+ "name" => "Spanish",
672
+ "language" => "es"
673
+ },
674
+ {
675
+ "name" => "Chinese",
676
+ "language" => "zh"
677
+ }
678
+ ]
679
+ }
680
+ stub_request(:get, "https://api.us-south.language-translator.watson.cloud.ibm.com/v3/languages?version=2018-05-01")
681
+ .with(
682
+ headers: {
683
+ "Accept" => "application/json",
684
+ "Authorization" => "Bearer " + token_response["access_token"]
685
+ }
686
+ ).to_return(status: 200, body: expected.to_json, headers: { "Content-Type" => "application/json" })
687
+ service_response = service.list_languages
688
+ assert_equal(expected, service_response.result)
689
+ end
629
690
  end