datawow 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.ruby-version +1 -0
  4. data/Gemfile +3 -0
  5. data/Gemfile.lock +59 -0
  6. data/INSTALL.md +7 -0
  7. data/README/ai_docs.md +153 -0
  8. data/README/image_docs.md +119 -0
  9. data/README/text_docs.md +83 -0
  10. data/README/video_docs.md +53 -0
  11. data/README.md +160 -0
  12. data/Rakefile +12 -0
  13. data/datawow.gemspec +28 -0
  14. data/lib/datawow/client_response.rb +18 -0
  15. data/lib/datawow/connection.rb +99 -0
  16. data/lib/datawow/connector.rb +118 -0
  17. data/lib/datawow/error.rb +15 -0
  18. data/lib/datawow/faraday/raise_http_exception.rb +40 -0
  19. data/lib/datawow/models/images/image_choices.rb +16 -0
  20. data/lib/datawow/models/images/image_closed_questions.rb +16 -0
  21. data/lib/datawow/models/images/image_messages.rb +16 -0
  22. data/lib/datawow/models/images/image_photo_tags.rb +16 -0
  23. data/lib/datawow/models/images/nanameue_human.rb +16 -0
  24. data/lib/datawow/models/interface.rb +26 -0
  25. data/lib/datawow/models/predictions/predictors.rb +18 -0
  26. data/lib/datawow/models/texts/text_categories.rb +16 -0
  27. data/lib/datawow/models/texts/text_closed_questions.rb +16 -0
  28. data/lib/datawow/models/texts/text_conversations.rb +16 -0
  29. data/lib/datawow/models/videos/video_classifications.rb +17 -0
  30. data/lib/datawow/version.rb +3 -0
  31. data/lib/datawow.rb +75 -0
  32. data/lib/generators/datawow/install_generator.rb +18 -0
  33. data/lib/generators/templates/datawow_api.rb +5 -0
  34. data/test/datawow/client_response_test.rb +29 -0
  35. data/test/datawow/connection_test.rb +85 -0
  36. data/test/datawow/connector_test.rb +79 -0
  37. data/test/datawow/image_choices_test.rb +48 -0
  38. data/test/datawow/image_closed_questions_test.rb +47 -0
  39. data/test/datawow/image_messages_test.rb +48 -0
  40. data/test/datawow/image_photo_tags_test.rb +48 -0
  41. data/test/datawow/nanameue_human_test.rb +47 -0
  42. data/test/datawow/predictors_test.rb +48 -0
  43. data/test/datawow/text_categories_test.rb +48 -0
  44. data/test/datawow/text_closed_questions_test.rb +48 -0
  45. data/test/datawow/text_conversations_test.rb +48 -0
  46. data/test/datawow/video_classifications_test.rb +48 -0
  47. data/test/datawow_test.rb +34 -0
  48. data/test/fixtures/image_choice/all.json +27 -0
  49. data/test/fixtures/image_choice/create.json +25 -0
  50. data/test/fixtures/image_closed_question/all.json +21 -0
  51. data/test/fixtures/image_closed_question/create.json +19 -0
  52. data/test/fixtures/image_message/all.json +22 -0
  53. data/test/fixtures/image_message/create.json +20 -0
  54. data/test/fixtures/image_photo_tag/all.json +22 -0
  55. data/test/fixtures/image_photo_tag/create.json +20 -0
  56. data/test/fixtures/nanameue_human/all.json +25 -0
  57. data/test/fixtures/nanameue_human/create.json +21 -0
  58. data/test/fixtures/prediction/all.json +21 -0
  59. data/test/fixtures/prediction/create.json +19 -0
  60. data/test/fixtures/text_category/all.json +34 -0
  61. data/test/fixtures/text_category/create.json +27 -0
  62. data/test/fixtures/text_closed_question/all.json +27 -0
  63. data/test/fixtures/text_closed_question/create.json +20 -0
  64. data/test/fixtures/text_conversation/all.json +33 -0
  65. data/test/fixtures/text_conversation/create.json +26 -0
  66. data/test/fixtures/video_classification/all.json +21 -0
  67. data/test/fixtures/video_classification/create.json +19 -0
  68. data/test/helper/file_reader.rb +11 -0
  69. data/test/test_helper.rb +59 -0
  70. metadata +254 -0
@@ -0,0 +1,85 @@
1
+ require 'test_helper'
2
+
3
+ module Datawow
4
+ class ConnectionTest < Minitest::Test
5
+ def test_get_success
6
+ stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
7
+ .to_return(body: JSON.generate(data: 'foo', meta: { message: 'success', code: 200 }), status: 200)
8
+ response = connection.get('/images', {})
9
+ assert_instance_of(Response, response)
10
+ assert_equal(200, response.status)
11
+ assert_equal('success', response.message)
12
+ assert_equal('success', response.meta['message'])
13
+ assert_equal(200, response.status)
14
+ end
15
+
16
+ def test_get_failed
17
+ stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
18
+ .to_return(body: JSON.generate(data: '', meta: { message: 'Internal Server Error', code: 500 }), status: 500)
19
+ response = connection.get('/images', {})
20
+ assert_instance_of(Response, response)
21
+ assert_equal(500, response.status)
22
+ end
23
+
24
+ def test_post_success
25
+ stub_request(:post, 'https://kiyo-image.datawow.io/api/v1/images')
26
+ .to_return(body: JSON.generate(data: 'foo', meta: { code: 200 }), status: 200)
27
+ response = connection.post('/images', {})
28
+ assert_instance_of(Response, response)
29
+ assert_equal(200, response.status)
30
+ end
31
+
32
+ def test_post_failed
33
+ stub_request(:post, 'https://kiyo-image.datawow.io/api/v1/images')
34
+ .to_return(body: JSON.generate(data: '', meta: { code: 500, message: 'Internal Server Error' }), status: 500)
35
+ response = connection.post('/images', {})
36
+ assert_instance_of(Response, response)
37
+ assert_equal(500, response.status)
38
+ end
39
+
40
+ def test_connection_failed
41
+ stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
42
+ .to_raise(Faraday::ConnectionFailed.new('connection failed'))
43
+ response = connection.get('/images')
44
+ assert_instance_of(Response, response)
45
+ end
46
+
47
+ def test_bad_request_status
48
+ stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
49
+ .to_return(status: 400, body: JSON.generate(data: '', meta: { message: 'bad request', code: 400 }))
50
+ response = connection.get('/images', {})
51
+ assert_instance_of(Response, response)
52
+ assert_equal(400, response.status)
53
+ end
54
+
55
+ def test_forbidden_status
56
+ stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
57
+ .to_return(body: JSON.generate(data: '', meta: { message: 'forbidden', code: 403 }), status: 403)
58
+ response = connection.get('/images', {})
59
+ assert_instance_of(Response, response)
60
+ assert_equal(403, response.status)
61
+ end
62
+
63
+ def test_not_found_status
64
+ stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
65
+ .to_return(body: JSON.generate(data: '', meta: { message: 'not found', code: 404 }), status: 404)
66
+ response = connection.get('/images', {})
67
+ assert_instance_of(Response, response)
68
+ assert_equal(404, response.status)
69
+ end
70
+
71
+ def test_edge_case_error
72
+ stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
73
+ .to_return(body: JSON.generate(data: '', meta: { message: 'version not supported', code: 505 }), status: 505)
74
+ response = connection.get('/images', {})
75
+ assert_instance_of(Response, response)
76
+ assert_equal(505, response.status)
77
+ end
78
+
79
+ private
80
+
81
+ def connection
82
+ @connection ||= Datawow::Connection.new(model: :image)
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ module Datawow
6
+ class ConnectorTest < Minitest::Test
7
+ def test_get_success
8
+ stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
9
+ .to_return(body: JSON.generate(data: 'foo', meta: { message: 'success', code: 200 }), status: 200)
10
+ response = connector.get
11
+ assert_instance_of(Response, response)
12
+ assert_equal(200, response.status)
13
+ assert_equal('success', response.message)
14
+ assert_equal('success', response.meta['message'])
15
+ end
16
+
17
+ def test_get_failed
18
+ stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
19
+ .to_return(body: JSON.generate(data: '', meta: { message: 'Internal Server Error', code: 500 }), status: 500)
20
+ response = connector.get
21
+ assert_instance_of(Response, response)
22
+ assert_equal(500, response.status)
23
+ end
24
+
25
+ def test_post_success
26
+ stub_request(:post, 'https://kiyo-image.datawow.io/api/v1/images')
27
+ .to_return(body: JSON.generate(data: 'foo', meta: { code: 200 }), status: 200)
28
+ response = connector.post
29
+ assert_instance_of(Response, response)
30
+ assert_equal(200, response.status)
31
+ end
32
+
33
+ def test_post_failed
34
+ stub_request(:post, 'https://kiyo-image.datawow.io/api/v1/images')
35
+ .to_return(body: JSON.generate(data: '', meta: { code: 500, message: 'Internal Server Error' }), status: 500)
36
+ response = connector.post
37
+ assert_instance_of(Response, response)
38
+ assert_equal(500, response.status)
39
+ end
40
+
41
+ def test_bad_request_status
42
+ stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
43
+ .to_return(status: 400, body: JSON.generate(data: '', meta: { message: 'bad request', code: 400 }))
44
+ response = connector.get
45
+ assert_instance_of(Response, response)
46
+ assert_equal(400, response.status)
47
+ end
48
+
49
+ def test_forbidden_status
50
+ stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
51
+ .to_return(body: JSON.generate(data: '', meta: { message: 'forbidden', code: 403 }), status: 403)
52
+ response = connector.get
53
+ assert_instance_of(Response, response)
54
+ assert_equal(403, response.status)
55
+ end
56
+
57
+ def test_not_found_status
58
+ stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
59
+ .to_return(body: JSON.generate(data: '', meta: { message: 'not found', code: 404 }), status: 404)
60
+ response = connector.get
61
+ assert_instance_of(Response, response)
62
+ assert_equal(404, response.status)
63
+ end
64
+
65
+ def test_edge_case_error
66
+ stub_request(:get, 'https://kiyo-image.datawow.io/api/v1/images')
67
+ .to_return(body: JSON.generate(data: '', meta: { message: 'version not supported', code: 505 }), status: 505)
68
+ response = connector.get
69
+ assert_instance_of(Response, response)
70
+ assert_equal(505, response.status)
71
+ end
72
+
73
+ private
74
+
75
+ def connector
76
+ connector ||= Connector.new('images', :image, token: 'test')
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ module Datawow
6
+ class ImageChoiceTest < TestBase
7
+ def test_all
8
+ stub_request(:get, IMAGE_CHOICES_URL)
9
+ .to_return(body: JSON.generate(image_choices), status: 200)
10
+ response = model.all
11
+
12
+ assert_instance_of(Response, response)
13
+ assert_equal(200, response.status)
14
+ refute_nil(response.data)
15
+ refute_nil(response.meta)
16
+ end
17
+
18
+ def test_create
19
+ stub_request(:post, IMAGE_CHOICES_URL)
20
+ .to_return(body: JSON.generate(image_choice), status: 200)
21
+ response = model.create(options)
22
+
23
+ assert_instance_of(Response, response)
24
+ assert_equal(200, response.status)
25
+ refute_nil(response.data)
26
+ refute_nil(response.meta)
27
+ end
28
+
29
+ def test_find
30
+ stub_request(:get, "#{IMAGE_CHOICES_URL}?id=test")
31
+ .to_return(body: JSON.generate(image_choice), status: 200)
32
+ response = model.find_by(id: 'test')
33
+
34
+ assert_instance_of(Response, response)
35
+ assert_equal(200, response.status)
36
+ refute_nil(response.data)
37
+ refute_nil(response.meta)
38
+ end
39
+
40
+ private
41
+
42
+ def model
43
+ @model ||= ImageChoice.new
44
+ @model.token = 'test'
45
+ @model
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+ require 'test_helper'
3
+
4
+ module Datawow
5
+ class ImageClosedQuestionTest < TestBase
6
+ def test_all
7
+ stub_request(:get, IMAGE_CLOSED_QUESTIONS_URL)
8
+ .to_return(body: JSON.generate(image_closed_questions), status: 200)
9
+ response = model.all
10
+
11
+ assert_instance_of(Response, response)
12
+ assert_equal(200, response.status)
13
+ refute_nil(response.data)
14
+ refute_nil(response.meta)
15
+ end
16
+
17
+ def test_create
18
+ stub_request(:post, IMAGE_CLOSED_QUESTIONS_URL)
19
+ .to_return(body: JSON.generate(image_closed_question), status: 200)
20
+ response = model.create(options)
21
+
22
+ assert_instance_of(Response, response)
23
+ assert_equal(200, response.status)
24
+ refute_nil(response.data)
25
+ refute_nil(response.meta)
26
+ end
27
+
28
+ def test_find
29
+ stub_request(:get, "#{IMAGE_CLOSED_QUESTIONS_URL}?id=test")
30
+ .to_return(body: JSON.generate(image_closed_question), status: 200)
31
+ response = model.find_by(id: 'test')
32
+
33
+ assert_instance_of(Response, response)
34
+ assert_equal(200, response.status)
35
+ refute_nil(response.data)
36
+ refute_nil(response.meta)
37
+ end
38
+
39
+ private
40
+
41
+ def model
42
+ @model ||= ImageClosedQuestion.new
43
+ @model.token = 'test'
44
+ @model
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ module Datawow
6
+ class ImageMessageTest < TestBase
7
+ def test_all
8
+ stub_request(:get, IMAGE_MESSAGES_URL)
9
+ .to_return(body: JSON.generate(image_messages), status: 200)
10
+ response = model.all
11
+
12
+ assert_instance_of(Response, response)
13
+ assert_equal(200, response.status)
14
+ refute_nil(response.data)
15
+ refute_nil(response.meta)
16
+ end
17
+
18
+ def test_create
19
+ stub_request(:post, IMAGE_MESSAGES_URL)
20
+ .to_return(body: JSON.generate(image_message), status: 200)
21
+ response = model.create(options)
22
+
23
+ assert_instance_of(Response, response)
24
+ assert_equal(200, response.status)
25
+ refute_nil(response.data)
26
+ refute_nil(response.meta)
27
+ end
28
+
29
+ def test_find
30
+ stub_request(:get, "#{IMAGE_MESSAGES_URL}?id=test")
31
+ .to_return(body: JSON.generate(image_message), status: 200)
32
+ response = model.find_by(id: 'test')
33
+
34
+ assert_instance_of(Response, response)
35
+ assert_equal(200, response.status)
36
+ refute_nil(response.data)
37
+ refute_nil(response.meta)
38
+ end
39
+
40
+ private
41
+
42
+ def model
43
+ @model ||= ImageMessage.new
44
+ @model.token = 'test'
45
+ @model
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ module Datawow
6
+ class ImagePhotoTagsTest < TestBase
7
+ def test_all
8
+ stub_request(:get, IMAGE_PHOTO_TAGS)
9
+ .to_return(body: JSON.generate(image_photo_tags), status: 200)
10
+ response = model.all
11
+
12
+ assert_instance_of(Response, response)
13
+ assert_equal(200, response.status)
14
+ refute_nil(response.data)
15
+ refute_nil(response.meta)
16
+ end
17
+
18
+ def test_create
19
+ stub_request(:post, IMAGE_PHOTO_TAGS)
20
+ .to_return(body: JSON.generate(image_photo_tags), status: 200)
21
+ response = model.create(options)
22
+
23
+ assert_instance_of(Response, response)
24
+ assert_equal(200, response.status)
25
+ refute_nil(response.data)
26
+ refute_nil(response.meta)
27
+ end
28
+
29
+ def test_find
30
+ stub_request(:get, "#{IMAGE_PHOTO_TAGS}?id=test")
31
+ .to_return(body: JSON.generate(image_photo_tag), status: 200)
32
+ response = model.find_by(id: 'test')
33
+
34
+ assert_instance_of(Response, response)
35
+ assert_equal(200, response.status)
36
+ refute_nil(response.data)
37
+ refute_nil(response.meta)
38
+ end
39
+
40
+ private
41
+
42
+ def model
43
+ @model ||= ImagePhotoTag.new
44
+ @model.token = 'test'
45
+ @model
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+ require 'test_helper'
3
+
4
+ module Datawow
5
+ class NanameueHumanTest < TestBase
6
+ def test_all
7
+ stub_request(:get, NANAMEUE_HUMAN_URL)
8
+ .to_return(body: JSON.generate(nanameue_humans), status: 200)
9
+ response = model.all
10
+
11
+ assert_instance_of(Response, response)
12
+ assert_equal(200, response.status)
13
+ refute_nil(response.data)
14
+ refute_nil(response.meta)
15
+ end
16
+
17
+ def test_create
18
+ stub_request(:post, NANAMEUE_HUMAN_URL)
19
+ .to_return(body: JSON.generate(nanameue_human), status: 201)
20
+ response = model.create(options)
21
+
22
+ assert_instance_of(Response, response)
23
+ assert_equal(201, response.status)
24
+ refute_nil(response.data)
25
+ refute_nil(response.meta)
26
+ end
27
+
28
+ def test_find
29
+ stub_request(:get, "#{NANAMEUE_HUMAN_URL}?id=test")
30
+ .to_return(body: JSON.generate(nanameue_human), status: 200)
31
+ response = model.find_by(id: 'test')
32
+
33
+ assert_instance_of(Response, response)
34
+ assert_equal(200, response.status)
35
+ refute_nil(response.data)
36
+ refute_nil(response.meta)
37
+ end
38
+
39
+ private
40
+
41
+ def model
42
+ @model ||= NanameueHuman.new
43
+ @model.token = 'test'
44
+ @model
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ module Datawow
6
+ class PredictorsTest < TestBase
7
+ def test_all
8
+ stub_request(:get, PREDICTIONS_URL)
9
+ .to_return(body: JSON.generate(predictions), status: 200)
10
+ response = model.all
11
+
12
+ assert_instance_of(Response, response)
13
+ assert_equal(200, response.status)
14
+ refute_nil(response.data)
15
+ refute_nil(response.meta)
16
+ end
17
+
18
+ def test_create
19
+ stub_request(:post, PREDICTIONS_URL)
20
+ .to_return(body: JSON.generate(prediction), status: 200)
21
+ response = model.create(options)
22
+
23
+ assert_instance_of(Response, response)
24
+ assert_equal(200, response.status)
25
+ refute_nil(response.data)
26
+ refute_nil(response.meta)
27
+ end
28
+
29
+ def test_find
30
+ stub_request(:get, "#{PREDICTIONS_URL}/1")
31
+ .to_return(body: JSON.generate(prediction), status: 200)
32
+ response = model.find_by(id: '1')
33
+
34
+ assert_instance_of(Response, response)
35
+ assert_equal(200, response.status)
36
+ refute_nil(response.data)
37
+ refute_nil(response.meta)
38
+ end
39
+
40
+ private
41
+
42
+ def model
43
+ @model ||= Predictor.new
44
+ @model.token = 'test'
45
+ @model
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ module Datawow
6
+ class TextCategoriesTest < TestBase
7
+ def test_all
8
+ stub_request(:get, TEXT_CATEGORY_URL)
9
+ .to_return(body: JSON.generate(text_categories), status: 200)
10
+ response = model.all
11
+
12
+ assert_instance_of(Response, response)
13
+ assert_equal(200, response.status)
14
+ refute_nil(response.data)
15
+ refute_nil(response.meta)
16
+ end
17
+
18
+ def test_create
19
+ stub_request(:post, TEXT_CATEGORY_URL)
20
+ .to_return(body: JSON.generate(text_categories), status: 200)
21
+ response = model.create(options)
22
+
23
+ assert_instance_of(Response, response)
24
+ assert_equal(200, response.status)
25
+ refute_nil(response.data)
26
+ refute_nil(response.meta)
27
+ end
28
+
29
+ def test_find
30
+ stub_request(:get, "#{TEXT_CATEGORY_URL}?id=1")
31
+ .to_return(body: JSON.generate(text_category), status: 200)
32
+ response = model.find_by(id: '1')
33
+
34
+ assert_instance_of(Response, response)
35
+ assert_equal(200, response.status)
36
+ refute_nil(response.data)
37
+ refute_nil(response.meta)
38
+ end
39
+
40
+ private
41
+
42
+ def model
43
+ @model ||= TextCategory.new
44
+ @model.token = 'test'
45
+ @model
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ module Datawow
6
+ class TextClosedQuestionsTest < TestBase
7
+ def test_all
8
+ stub_request(:get, TEXT_CLOSED_QUESTION_URL)
9
+ .to_return(body: JSON.generate(text_conversations), status: 200)
10
+ response = model.all
11
+
12
+ assert_instance_of(Response, response)
13
+ assert_equal(200, response.status)
14
+ refute_nil(response.data)
15
+ refute_nil(response.meta)
16
+ end
17
+
18
+ def test_create
19
+ stub_request(:post, TEXT_CLOSED_QUESTION_URL)
20
+ .to_return(body: JSON.generate(text_conversations), status: 200)
21
+ response = model.create(options)
22
+
23
+ assert_instance_of(Response, response)
24
+ assert_equal(200, response.status)
25
+ refute_nil(response.data)
26
+ refute_nil(response.meta)
27
+ end
28
+
29
+ def test_find
30
+ stub_request(:get, "#{TEXT_CLOSED_QUESTION_URL}?id=1")
31
+ .to_return(body: JSON.generate(text_conversation), status: 200)
32
+ response = model.find_by(id: '1')
33
+
34
+ assert_instance_of(Response, response)
35
+ assert_equal(200, response.status)
36
+ refute_nil(response.data)
37
+ refute_nil(response.meta)
38
+ end
39
+
40
+ private
41
+
42
+ def model
43
+ @model ||= TextClosedQuestion.new
44
+ @model.token = 'test'
45
+ @model
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ module Datawow
6
+ class TextConversationsTest < TestBase
7
+ def test_all
8
+ stub_request(:get, TEXT_CONVERSATION_URL)
9
+ .to_return(body: JSON.generate(text_closed_questions), status: 200)
10
+ response = model.all
11
+
12
+ assert_instance_of(Response, response)
13
+ assert_equal(200, response.status)
14
+ refute_nil(response.data)
15
+ refute_nil(response.meta)
16
+ end
17
+
18
+ def test_create
19
+ stub_request(:post, TEXT_CONVERSATION_URL)
20
+ .to_return(body: JSON.generate(text_closed_questions), status: 200)
21
+ response = model.create(options)
22
+
23
+ assert_instance_of(Response, response)
24
+ assert_equal(200, response.status)
25
+ refute_nil(response.data)
26
+ refute_nil(response.meta)
27
+ end
28
+
29
+ def test_find
30
+ stub_request(:get, "#{TEXT_CONVERSATION_URL}?id=1")
31
+ .to_return(body: JSON.generate(text_closed_question), status: 200)
32
+ response = model.find_by(id:1)
33
+
34
+ assert_instance_of(Response, response)
35
+ assert_equal(200, response.status)
36
+ refute_nil(response.data)
37
+ refute_nil(response.meta)
38
+ end
39
+
40
+ private
41
+
42
+ def model
43
+ @model ||= TextConversation.new
44
+ @model.token = 'test'
45
+ @model
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ module Datawow
6
+ class VideoClassificationsTest < TestBase
7
+ def test_all
8
+ stub_request(:get, VIDEO_URL)
9
+ .to_return(body: JSON.generate(videos), status: 200)
10
+ response = model.all
11
+
12
+ assert_instance_of(Response, response)
13
+ assert_equal(200, response.status)
14
+ refute_nil(response.data)
15
+ refute_nil(response.meta)
16
+ end
17
+
18
+ def test_create
19
+ stub_request(:post, VIDEO_URL)
20
+ .to_return(body: JSON.generate(videos), status: 200)
21
+ response = model.create(options)
22
+
23
+ assert_instance_of(Response, response)
24
+ assert_equal(200, response.status)
25
+ refute_nil(response.data)
26
+ refute_nil(response.meta)
27
+ end
28
+
29
+ def test_find
30
+ stub_request(:get, "#{VIDEO_URL}/1")
31
+ .to_return(body: JSON.generate(video), status: 200)
32
+ response = model.find_by(id: 1)
33
+
34
+ assert_instance_of(Response, response)
35
+ assert_equal(200, response.status)
36
+ refute_nil(response.data)
37
+ refute_nil(response.meta)
38
+ end
39
+
40
+ private
41
+
42
+ def model
43
+ @model ||= VideoClassification.new
44
+ @model.token = 'test'
45
+ @model
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,34 @@
1
+ require 'test_helper'
2
+
3
+ module Datawow
4
+ class DatawowTest < Minitest::Test
5
+ def test_setup
6
+ Datawow.setup { |config| }
7
+ end
8
+
9
+ def test_image_closed_question
10
+ closed_question = Datawow.image_closed_question
11
+ refute_nil(closed_question)
12
+ end
13
+
14
+ def test_image_photo_tag
15
+ photo_tag = Datawow.image_photo_tag
16
+ refute_nil(photo_tag)
17
+ end
18
+
19
+ def test_image_choice
20
+ choice = Datawow.image_choice
21
+ refute_nil(choice)
22
+ end
23
+
24
+ def test_image_message
25
+ message = Datawow.image_message
26
+ refute_nil(message)
27
+ end
28
+
29
+ def test_prediction
30
+ prediction = Datawow.prediction
31
+ refute_nil(prediction)
32
+ end
33
+ end
34
+ end