veye 0.0.9 → 0.1

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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +80 -29
  3. data/Makefile +6 -0
  4. data/README.md +12 -224
  5. data/bin/veye +13 -22
  6. data/changelogs.md +95 -0
  7. data/lib/veye/api/base_resource.rb +8 -9
  8. data/lib/veye/api/github.rb +77 -0
  9. data/lib/veye/api/json_response.rb +21 -25
  10. data/lib/veye/api/package.rb +98 -0
  11. data/lib/veye/api/project.rb +107 -0
  12. data/lib/veye/api/resource.rb +9 -8
  13. data/lib/veye/api/service.rb +15 -0
  14. data/lib/veye/api/user.rb +32 -0
  15. data/lib/veye/api.rb +22 -2
  16. data/lib/veye/base_executor.rb +13 -9
  17. data/lib/veye/github/delete.rb +10 -20
  18. data/lib/veye/github/import.rb +7 -14
  19. data/lib/veye/github/info.rb +6 -12
  20. data/lib/veye/github/list.rb +9 -19
  21. data/lib/veye/github/search.rb +9 -17
  22. data/lib/veye/github/sync.rb +9 -18
  23. data/lib/veye/github.rb +1 -1
  24. data/lib/veye/helpers/format_helpers.rb +15 -5
  25. data/lib/veye/package/follow.rb +24 -47
  26. data/lib/veye/package/info.rb +8 -25
  27. data/lib/veye/package/references.rb +9 -36
  28. data/lib/veye/package/search.rb +14 -24
  29. data/lib/veye/package.rb +14 -6
  30. data/lib/veye/pagination.rb +2 -0
  31. data/lib/veye/project/check.rb +39 -117
  32. data/lib/veye/project/license.rb +23 -0
  33. data/lib/veye/project.rb +4 -3
  34. data/lib/veye/service.rb +13 -17
  35. data/lib/veye/user/me.rb +11 -30
  36. data/lib/veye/user.rb +2 -1
  37. data/lib/veye/version.rb +1 -1
  38. data/lib/veye/views/github/info_csv.rb +3 -3
  39. data/lib/veye/views/github/info_json.rb +4 -0
  40. data/lib/veye/views/github/list_csv.rb +5 -3
  41. data/lib/veye/views/github/list_pretty.rb +2 -2
  42. data/lib/veye/views/github/list_table.rb +3 -2
  43. data/lib/veye/views/package/info_pretty.rb +1 -1
  44. data/lib/veye/views/package/search_csv.rb +2 -3
  45. data/lib/veye/views/package/search_table.rb +1 -3
  46. data/lib/veye/views/package.rb +1 -1
  47. data/lib/veye/views/project/licence_csv.rb +3 -3
  48. data/lib/veye/views/project/licence_json.rb +1 -1
  49. data/lib/veye/views/project/licence_pretty.rb +1 -1
  50. data/lib/veye/views/project/licence_table.rb +3 -3
  51. data/lib/veye/views/user/profile_table.rb +4 -1
  52. data/lib/veye/views/user.rb +3 -1
  53. data/lib/veye.rb +29 -61
  54. data/test/api/github_test.rb +84 -0
  55. data/test/api/package_test.rb +80 -0
  56. data/test/api/project_test.rb +118 -0
  57. data/test/api/service_test.rb +15 -0
  58. data/test/api/user_test.rb +30 -0
  59. data/test/fixtures/vcr_cassettes/github_delete.yml +48 -0
  60. data/test/fixtures/vcr_cassettes/github_import.yml +53 -0
  61. data/test/fixtures/vcr_cassettes/github_info.yml +49 -0
  62. data/test/fixtures/vcr_cassettes/github_list.yml +80 -0
  63. data/test/fixtures/vcr_cassettes/github_sync.yml +48 -0
  64. data/test/fixtures/vcr_cassettes/package_follow.yml +52 -0
  65. data/test/fixtures/vcr_cassettes/package_follow_status.yml +48 -0
  66. data/test/fixtures/vcr_cassettes/package_info.yml +56 -0
  67. data/test/fixtures/vcr_cassettes/package_reference.yml +46 -0
  68. data/test/fixtures/vcr_cassettes/package_search.yml +46 -0
  69. data/test/fixtures/vcr_cassettes/package_unfollow.yml +48 -0
  70. data/test/fixtures/vcr_cassettes/project_delete.yml +48 -0
  71. data/test/fixtures/vcr_cassettes/project_get.yml +49 -0
  72. data/test/fixtures/vcr_cassettes/project_license.yml +49 -0
  73. data/test/fixtures/vcr_cassettes/project_list.yml +48 -0
  74. data/test/fixtures/vcr_cassettes/project_update.yml +105 -0
  75. data/test/fixtures/vcr_cassettes/project_upload.yml +104 -0
  76. data/test/fixtures/vcr_cassettes/services_ping.yml +46 -0
  77. data/test/fixtures/vcr_cassettes/user_get_favorites.yml +48 -0
  78. data/test/fixtures/vcr_cassettes/user_get_profile.yml +48 -0
  79. data/test/github_delete_test.rb +31 -0
  80. data/test/github_import_test.rb +94 -0
  81. data/test/github_info_test.rb +73 -0
  82. data/test/github_list_test.rb +84 -0
  83. data/test/github_sync_test.rb +20 -0
  84. data/test/package_follow_test.rb +38 -0
  85. data/test/package_info_test.rb +73 -0
  86. data/test/package_reference_test.rb +67 -0
  87. data/test/package_search_test.rb +66 -0
  88. data/test/project_check_test.rb +326 -0
  89. data/test/project_license_test.rb +72 -0
  90. data/test/service_test.rb +29 -0
  91. data/test/test_helper.rb +29 -4
  92. data/test/user_me_test.rb +126 -0
  93. data/veye.gemspec +45 -0
  94. metadata +163 -37
  95. data/DEPENDENCIES.md +0 -25
  96. data/lib/veye/helpers/repo_helpers.rb +0 -5
  97. data/lib/veye/project/licence.rb +0 -38
  98. data/test/default_test.rb +0 -14
@@ -0,0 +1,73 @@
1
+ require 'test_helper'
2
+ require 'csv'
3
+
4
+ class PackageInfoTest < Minitest::Test
5
+ def setup
6
+ init_environment
7
+ end
8
+
9
+ def test_info_default
10
+ VCR.use_cassette('package_info') do
11
+ output = capture_stdout {|| Veye::Package::Info.get_package('ruby/veye')}
12
+ refute_nil output, "No command output"
13
+
14
+ rows = output.split(/\n/)
15
+ assert_equal "\t\e[32m\e[1mveye\e[0m - \e[1m0.0.9\e[0m", rows[0]
16
+ assert_equal "\tLanguage : ruby", rows[1]
17
+ assert_equal "\tLicense : MIT", rows[2]
18
+ assert_equal "\tProduct type : RubyGem", rows[3]
19
+ assert_equal "\tProduct key : \e[1mveye\e[0m", rows[4]
20
+ end
21
+ end
22
+
23
+ def test_info_csv_format
24
+ VCR.use_cassette('package_info') do
25
+ output = capture_stdout do
26
+ Veye::Package::Info.get_package('ruby/veye', {format: 'csv'})
27
+ end
28
+
29
+ refute_nil output, "No command output"
30
+ rows = CSV.parse(output)
31
+ assert_equal ["name", "version", "language", "prod_key", "licence", "prod_type", "description", "link"], rows[0]
32
+ assert_equal ["veye", "0.0.9", "ruby", "veye", nil, "RubyGem", nil, nil], rows[1]
33
+ end
34
+ end
35
+
36
+ def test_info_json_format
37
+ VCR.use_cassette('package_info') do
38
+ output = capture_stdout do
39
+ Veye::Package::Info.get_package('ruby/veye', {format: 'json'})
40
+ end
41
+ refute_nil output
42
+ dt = JSON.parse(output)
43
+ package = dt["package"]
44
+ assert_equal "veye", package["name"]
45
+ assert_equal "ruby", package["language"]
46
+ assert_equal "veye", package["prod_key"]
47
+ assert_equal "0.0.9", package["version"]
48
+ assert_equal "RubyGem", package["prod_type"]
49
+ assert_equal "MIT", package["license_info"]
50
+
51
+ dep = package["dependencies"].first
52
+ assert_equal "awesome_print", dep["name"]
53
+ assert_equal "~> 1.2", dep["version"]
54
+
55
+ license = package["licenses"].first
56
+ assert_equal "MIT", license["name"]
57
+ assert_equal nil, license["url"]
58
+ end
59
+ end
60
+
61
+ def test_info_table_format
62
+ VCR.use_cassette('package_info') do
63
+ output = capture_stdout do
64
+ Veye::Package::Info.get_package('ruby/veye', {format: 'table'})
65
+ end
66
+ refute_nil output, "No command output"
67
+ rows = output.split(/\n/)
68
+ assert_match /\|\s+Package information\s+\|/, rows[1]
69
+ assert_match /\| name \| version \| product_key \| language \| license \| description/, rows[3]
70
+ assert_match /\| veye \| 0.0.9 \| veye\s+\| ruby\s+| MIT\s+\|/, rows[5]
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,67 @@
1
+ require 'test_helper'
2
+ require 'csv'
3
+
4
+ class PackageReferenceTest < MiniTest::Test
5
+ def setup
6
+ init_environment
7
+ end
8
+
9
+ def test_reference_with_results
10
+ VCR.use_cassette('package_reference') do
11
+ output = capture_stdout do
12
+ Veye::Package::References.get_references('ruby/ruby', {})
13
+ end
14
+ refute_nil output, "Command output was nil"
15
+ rows = output.split(/\n/)
16
+ assert_equal " 1 - \e[32m\e[1macts_as_dasherize_vanity\e[0m", rows[0]
17
+ assert_equal "\tProduct key : \e[1macts_as_dasherize_vanity\e[0m", rows[1]
18
+ assert_equal "\tProduct type : RubyGem", rows[2]
19
+ assert_equal "\tLanguage : ruby", rows[3]
20
+ assert_equal "\tVersion : \e[1m0.0.3\e[0m", rows[4]
21
+ assert_equal " 2 - \e[32m\e[1mblacklisted_password\e[0m", rows[5]
22
+ end
23
+ end
24
+
25
+ def test_reference_csv_format
26
+ VCR.use_cassette('package_reference') do
27
+ output = capture_stdout do
28
+ Veye::Package::References.get_references('ruby/ruby', {format: 'csv'})
29
+ end
30
+ refute_nil output, "Command output was nil"
31
+ rows = CSV.parse(output)
32
+ assert_equal ["nr", "name", "language", "prod_key", "prod_type", "version"], rows[0]
33
+ assert_equal ["1", "acts_as_dasherize_vanity", "ruby", "acts_as_dasherize_vanity", "RubyGem", "0.0.3"], rows[1]
34
+ assert_equal ["2", "blacklisted_password", "ruby", "blacklisted_password", "RubyGem", "1.0.0"], rows[2]
35
+ end
36
+ end
37
+
38
+ def test_reference_json_format
39
+ VCR.use_cassette('package_reference') do
40
+ output = capture_stdout do
41
+ Veye::Package::References.get_references('ruby/ruby', {format: 'json'})
42
+ end
43
+ refute_nil output, "Command output was nil"
44
+ dt = JSON.parse(output)
45
+ pkg = dt["results"].first
46
+ assert_equal "acts_as_dasherize_vanity", pkg["name"]
47
+ assert_equal "ruby", pkg["language"]
48
+ assert_equal "acts_as_dasherize_vanity", pkg["prod_key"]
49
+ assert_equal "0.0.3", pkg["version"]
50
+ assert_equal "RubyGem", pkg["prod_type"]
51
+ end
52
+ end
53
+
54
+ def test_reference_table_format
55
+ VCR.use_cassette('package_reference') do
56
+ output = capture_stdout do
57
+ Veye::Package::References.get_references('ruby/ruby', {format: 'table'})
58
+ end
59
+ refute_nil output, "Command output was nil"
60
+ rows = output.split(/\n/)
61
+ assert_match /\|\s+Package references\s+\|/, rows[1]
62
+ assert_match /\| index \| name\s+\| version \| product_key\s+\| product_type \| language \|/, rows[3]
63
+ assert_match /\| 1\s+\| acts_as_dasherize_vanity \| 0.0.3\s+\| acts_as_dasherize_vanity \| RubyGem\s+\| ruby\s+\|/, rows[5]
64
+ end
65
+ end
66
+
67
+ end
@@ -0,0 +1,66 @@
1
+ require 'test_helper'
2
+ require 'csv'
3
+
4
+ class PackageSearchTest < MiniTest::Test
5
+ def setup
6
+ init_environment
7
+ end
8
+
9
+ def test_search_when_success
10
+ VCR.use_cassette('package_search') do
11
+ output = capture_stdout do
12
+ Veye::Package::Search.search('veye', {})
13
+ end
14
+ refute_nil output, "Command output was nil"
15
+ rows = output.split(/\n/)
16
+ assert_equal " 1 - \e[32m\e[1mveye\e[0m", rows[0]
17
+ assert_equal "\tProduct key : veye", rows[1]
18
+ assert_equal "\tLatest version : \e[32m\e[1m0.0.9\e[0m", rows[2]
19
+ assert_equal "\tLanguage : ruby", rows[3]
20
+ end
21
+ end
22
+
23
+ def test_search_csv_format
24
+ VCR.use_cassette('package_search') do
25
+ output = capture_stdout do
26
+ Veye::Package::Search.search('veye', {format: "csv"})
27
+ end
28
+ refute_nil output, "Command output was nil"
29
+
30
+ rows = CSV.parse(output)
31
+ assert_equal ["nr", "name", "version", "prod_key", "language", "group_id"], rows[0]
32
+ assert_equal ["1", "veye", "0.0.9", "veye", "ruby", nil], rows[1]
33
+ end
34
+ end
35
+
36
+ def test_search_json_format
37
+ VCR.use_cassette('package_search') do
38
+ output = capture_stdout do
39
+ Veye::Package::Search.search('veye', {format: "json"})
40
+ end
41
+ refute_nil output, "Command output was nil"
42
+
43
+ dt = JSON.parse(output)
44
+ res = dt["results"].first
45
+ assert_equal "veye", res["name"]
46
+ assert_equal "ruby", res["language"]
47
+ assert_equal "veye", res["prod_key"]
48
+ assert_equal "0.0.9", res["version"]
49
+ assert_equal "RubyGem", res["prod_type"]
50
+ end
51
+ end
52
+
53
+ def test_search_table_format
54
+ VCR.use_cassette('package_search') do
55
+ output = capture_stdout do
56
+ Veye::Package::Search.search('veye', {format: "table"})
57
+ end
58
+ refute_nil output, "Command output was nil"
59
+
60
+ rows = output.split(/\n/)
61
+ assert_match /\|\s+Package search\s+\|/, rows[1]
62
+ assert_match /\| index \| name \| version \| product_key \| language \|/, rows[3]
63
+ assert_match /\| 1\s+\| veye \| 0.0.9\s+\| veye\s+\| ruby\s+\|/, rows[5]
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,326 @@
1
+ require 'test_helper'
2
+ require 'csv'
3
+
4
+ class ProjectCheckTest < Minitest::Test
5
+ def setup
6
+ init_environment
7
+ @api_key = 'ba7d93beb5de7820764e'
8
+ @test_file = "test/files/maven-1.0.1.pom.xml"
9
+ @project_key = "maven2_openejb_maven_plugins_1"
10
+ end
11
+
12
+ def test_get_list_default
13
+ VCR.use_cassette('project_list') do
14
+ output = capture_stdout do
15
+ Veye::Project::Check.get_list(@api_key, {})
16
+ end
17
+
18
+ rows = output.split(/\n/)
19
+ assert_equal " 1 - \e[32m\e[1mbugtraqer\e[0m", rows[0]
20
+ assert_equal "\tProject key : \e[1mlein_project_clj_1\e[0m", rows[1]
21
+ assert_equal "\tProject type : Lein", rows[2]
22
+ assert_equal "\tPublic : false", rows[3]
23
+ assert_equal "\tPeriod : weekly", rows[4]
24
+ assert_equal "\tSource : upload", rows[5]
25
+ assert_equal "\tDependencies : \e[1m9\e[0m", rows[6]
26
+ assert_equal "\tOutdated : \e[31m8\e[0m", rows[7]
27
+ end
28
+ end
29
+
30
+ def test_get_list_csv
31
+ VCR.use_cassette("project_list") do
32
+ output = capture_stdout do
33
+ Veye::Project::Check.get_list(@api_key, {format: 'csv'})
34
+ end
35
+
36
+ rows = CSV.parse(output)
37
+ assert_equal ["nr", "name", "project_key", "public", "period", "source",
38
+ "dep_number", "out_number", "created_at"], rows[0]
39
+ assert_equal ["1", "bugtraqer", "lein_project_clj_1", "false", "weekly",
40
+ "upload", "9", "8", "19.08.2013-18:31"], rows[1]
41
+ assert_equal ["2", "Calidu/API", "lein_calidu_api_1", "true", "daily",
42
+ "github", "13", "1"], rows[2].take(8)
43
+ end
44
+ end
45
+
46
+ def test_get_list_json
47
+ VCR.use_cassette("project_list") do
48
+ output = capture_stdout do
49
+ Veye::Project::Check.get_list(@api_key, {format: 'json'})
50
+ end
51
+
52
+ res = JSON.parse(output)
53
+ projects = res["projects"]
54
+ assert_equal("bugtraqer", projects[0]["name"])
55
+ assert_equal("lein_project_clj_1", projects[0]["project_key"])
56
+ assert_equal(false, projects[0]["public"])
57
+ assert_equal("upload", projects[0]["source"])
58
+ assert_equal("weekly", projects[0]["period"])
59
+ end
60
+ end
61
+
62
+ def test_get_list_table
63
+ VCR.use_cassette("project_list") do
64
+ output = capture_stdout do
65
+ Veye::Project::Check.get_list(@api_key, {format: 'table'})
66
+ end
67
+
68
+ rows = output.split(/\n/)
69
+ assert_match(/\|\s+List of projects\s+\|/, rows[1])
70
+ assert_equal(
71
+ "| index | name | project_key \
72
+ | private | period | source | dependencies | outdated | created_at |",
73
+ rows[3]
74
+ )
75
+
76
+ assert_match(/| 1\s+| bugtraqer\s+| lein_project_clj_1/, rows[5])
77
+ end
78
+ end
79
+
80
+ def test_upload_default
81
+ VCR.use_cassette('project_upload') do
82
+ output = capture_stdout do
83
+ Veye::Project::Check.upload(@test_file, @api_key, {})
84
+ end
85
+
86
+ refute_nil output
87
+ rows = output.split(/\n/)
88
+ assert_equal " 1 - \e[32m\e[1mOpenEJB :: Maven Plugins\e[0m", rows[0]
89
+ assert_equal "\tProject key : \e[1mmaven2_openejb_maven_plugins_1\e[0m", rows[1]
90
+ assert_equal "\tProject type : Maven2", rows[2]
91
+ assert_equal "\tPublic : true", rows[3]
92
+ assert_equal "\tPeriod : daily", rows[4]
93
+ assert_equal "\tSource : API", rows[5]
94
+ assert_equal "\tDependencies : \e[1m11\e[0m", rows[6]
95
+ assert_equal "\tOutdated : \e[31m10\e[0m", rows[7]
96
+ end
97
+ end
98
+
99
+ def test_upload_csv
100
+ VCR.use_cassette('project_upload') do
101
+ output = capture_stdout do
102
+ Veye::Project::Check.upload(@test_file, @api_key, {format: "csv"})
103
+ end
104
+
105
+ refute_nil output
106
+ rows = CSV.parse(output)
107
+ assert_equal ["nr", "name", "project_key", "public", "period", "source",
108
+ "dep_number", "out_number", "created_at"], rows[0]
109
+ assert_equal ["1", "OpenEJB :: Maven Plugins", "maven2_openejb_maven_plugins_1",
110
+ "true", "daily", "API", "11", "10"],
111
+ rows[1].take(8)
112
+
113
+ end
114
+ end
115
+
116
+ def test_upload_json
117
+ VCR.use_cassette('project_upload') do
118
+ output = capture_stdout do
119
+ Veye::Project::Check.upload(@test_file, @api_key, {format: "json"})
120
+ end
121
+
122
+ refute_nil output
123
+ res = JSON.parse(output)
124
+ assert_equal "maven2_openejb_maven_plugins_1", res["projects"]["project_key"]
125
+ assert_equal "OpenEJB :: Maven Plugins", res["projects"]["name"]
126
+ assert_equal "Maven2", res["projects"]["project_type"]
127
+ assert_equal true, res["projects"]["public"]
128
+ assert_equal "daily", res["projects"]["period"]
129
+ assert_equal "API", res["projects"]["source"]
130
+ end
131
+ end
132
+
133
+ def test_upload_table
134
+ VCR.use_cassette('project_upload') do
135
+ output = capture_stdout do
136
+ Veye::Project::Check.upload(@test_file, @api_key, {format: "table"})
137
+ end
138
+
139
+ refute_nil output
140
+ rows = output.split(/\n/)
141
+ assert_match(/\|\s+List of projects\s+\|/, rows[1])
142
+ assert_equal(
143
+ "| index | name | project_key \
144
+ | private | period | source | dependencies | outdated | created_at |",
145
+ rows[3]
146
+ )
147
+
148
+ assert_match(
149
+ /\| 1\s+\| OpenEJB :: Maven Plugins \| maven2_openejb_maven_plugins_1/,
150
+ rows[5]
151
+ )
152
+ end
153
+ end
154
+
155
+ def test_update_default
156
+ VCR.use_cassette('project_update') do
157
+ output = capture_stdout do
158
+ Veye::Project::Check.update(@project_key, @test_file, @api_key, {})
159
+ end
160
+ refute_nil output
161
+ rows = output.split(/\n/)
162
+ assert_equal " 1 - \e[32m\e[1mOpenEJB :: Maven Plugins\e[0m", rows[0]
163
+ assert_equal "\tProject key : \e[1mmaven2_openejb_maven_plugins_1\e[0m", rows[1]
164
+ assert_equal "\tProject type : Maven2", rows[2]
165
+ assert_equal "\tPublic : true", rows[3]
166
+ assert_equal "\tPeriod : daily", rows[4]
167
+ assert_equal "\tSource : API", rows[5]
168
+ assert_equal "\tDependencies : \e[1m11\e[0m", rows[6]
169
+ assert_equal "\tOutdated : \e[31m10\e[0m", rows[7]
170
+ end
171
+ end
172
+
173
+ def test_update_csv
174
+ VCR.use_cassette('project_update') do
175
+ output = capture_stdout do
176
+ Veye::Project::Check.update(@project_key, @test_file, @api_key, {format: 'csv'})
177
+ end
178
+
179
+ refute_nil output
180
+ rows = CSV.parse(output)
181
+ assert_equal ["nr", "name", "project_key", "public", "period", "source",
182
+ "dep_number", "out_number", "created_at"], rows[0]
183
+ assert_equal ["1", "OpenEJB :: Maven Plugins", "maven2_openejb_maven_plugins_1",
184
+ "true", "daily", "API", "11", "10"], rows[1].take(8)
185
+ end
186
+ end
187
+
188
+ def test_update_json
189
+ VCR.use_cassette('project_update') do
190
+ output = capture_stdout do
191
+ Veye::Project::Check.update(@project_key, @test_file, @api_key, {format: 'json'})
192
+ end
193
+
194
+ refute_nil output
195
+ res = JSON.parse(output)
196
+ proj = res["projects"]
197
+ assert_equal @project_key, proj["project_key"]
198
+ assert_equal "OpenEJB :: Maven Plugins", proj["name"]
199
+ assert_equal "Maven2", proj["project_type"]
200
+ assert_equal true, proj["public"]
201
+ assert_equal "API", proj["source"]
202
+ assert_equal 11, proj["dependencies"].count
203
+ end
204
+ end
205
+
206
+ def test_update_table
207
+ VCR.use_cassette('project_update') do
208
+ output = capture_stdout do
209
+ Veye::Project::Check.update(@project_key, @test_file, @api_key, {format: 'table'})
210
+ end
211
+
212
+ refute_nil output
213
+ rows = output.split(/\n/)
214
+ assert_match(
215
+ /| index \| name\s+\| project_key\s\| private \| period \| source \|/,
216
+ rows[4]
217
+ )
218
+ assert_match(
219
+ /\| 1\s+\| OpenEJB :: Maven Plugins \| maven2_openejb_maven_plugins_1 \|/,
220
+ rows[5]
221
+ )
222
+
223
+ assert_match(
224
+ /\| index \| name\s+\| prod_key\s+\| version_current \| version_requested\s+\| outdated | stable/,
225
+ rows[10]
226
+ )
227
+
228
+ assert_match(
229
+ /\| 1\s+\| aether-api\s+\| org.sonatype.aether\/aether-api/,
230
+ rows[12]
231
+ )
232
+ end
233
+ end
234
+
235
+ def test_get_project_default
236
+ VCR.use_cassette("project_get") do
237
+ output = capture_stdout do
238
+ Veye::Project::Check.get_project(@project_key, @api_key, {})
239
+ end
240
+
241
+ refute_nil output
242
+ rows = output.split(/\n/)
243
+ assert_equal " 1 - \e[32m\e[1mOpenEJB :: Maven Plugins\e[0m", rows[0]
244
+ assert_equal "\tProject key : \e[1mmaven2_openejb_maven_plugins_1\e[0m", rows[1]
245
+ assert_equal "\tProject type : Maven2", rows[2]
246
+ assert_equal "\tPublic : true", rows[3]
247
+ assert_equal "\tPeriod : daily", rows[4]
248
+ assert_equal "\tSource : API", rows[5]
249
+ assert_equal "\tDependencies : \e[1m11\e[0m", rows[6]
250
+ assert_equal "\tOutdated : \e[31m10\e[0m", rows[7]
251
+ end
252
+ end
253
+
254
+ def test_get_project_csv
255
+ VCR.use_cassette("project_get") do
256
+ output = capture_stdout do
257
+ Veye::Project::Check.get_project(@project_key, @api_key, {format: 'csv'})
258
+ end
259
+
260
+ refute_nil output
261
+ rows = CSV.parse(output)
262
+ assert_equal ["nr", "name", "project_key", "public", "period", "source", "dep_number", "out_number", "created_at"], rows[0]
263
+
264
+ assert_equal ["1", "OpenEJB :: Maven Plugins", "maven2_openejb_maven_plugins_1", "true", "daily", "API", "11", "10"], rows[1].take(8)
265
+ end
266
+ end
267
+
268
+ def test_get_project_json
269
+ VCR.use_cassette("project_get") do
270
+ output = capture_stdout do
271
+ Veye::Project::Check.get_project(@project_key, @api_key, {format: 'json'})
272
+ end
273
+
274
+ refute_nil output
275
+ doc = JSON.parse(output)
276
+ proj = doc["projects"]
277
+ assert_equal @project_key, proj["project_key"]
278
+ assert_equal "OpenEJB :: Maven Plugins", proj["name"]
279
+ assert_equal true, proj["public"]
280
+ assert_equal "API", proj["source"]
281
+ assert_equal "daily", proj["period"]
282
+ assert_equal 11, proj["dependencies"].count
283
+ end
284
+ end
285
+
286
+ def test_get_project_table
287
+ VCR.use_cassette("project_get") do
288
+ output = capture_stdout do
289
+ Veye::Project::Check.get_project(@project_key, @api_key, {format: 'table'})
290
+ end
291
+
292
+ refute_nil output
293
+
294
+ rows = output.split(/\n/)
295
+ assert_match(
296
+ /| index \| name\s+\| project_key\s\| private \| period \| source \|/,
297
+ rows[4]
298
+ )
299
+ assert_match(
300
+ /\| 1\s+\| OpenEJB :: Maven Plugins \| maven2_openejb_maven_plugins_1 \|/,
301
+ rows[5]
302
+ )
303
+
304
+ assert_match(
305
+ /\| index \| name\s+\| prod_key\s+\| version_current \| version_requested\s+\| outdated | stable/,
306
+ rows[10]
307
+ )
308
+
309
+ assert_match(
310
+ /\| 1\s+\| aether-api\s+\| org.sonatype.aether\/aether-api/,
311
+ rows[12]
312
+ )
313
+ end
314
+ end
315
+
316
+ def test_delete_project_default
317
+ VCR.use_cassette("project_delete") do
318
+ output = capture_stdout do
319
+ Veye::Project::Check.delete_project(@project_key, @api_key)
320
+ end
321
+
322
+ refute_nil output
323
+ assert_equal "\e[32mDeleted\n\e[0m", output
324
+ end
325
+ end
326
+ end
@@ -0,0 +1,72 @@
1
+ require 'test_helper'
2
+ require 'csv'
3
+
4
+ class ProjectLicenseTest < MiniTest::Test
5
+ def setup
6
+ init_environment
7
+ @project_key = 'rubygem_gemfile_lock_1'
8
+ @api_key = 'ba7d93beb5de7820764e'
9
+ end
10
+
11
+ def test_get_licenses_default
12
+ VCR.use_cassette("project_license") do
13
+ output = capture_stdout do |x|
14
+ Veye::Project::License.get_licenses(@project_key, @api_key, {})
15
+ end
16
+
17
+ rows = output.split(/\n/)
18
+ assert_equal(" 1 - \e[32m\e[1munknown\e[0m", rows[0])
19
+ assert_equal("\tProducts : gli", rows[1])
20
+ assert_equal(" 2 - \e[32m\e[1mMIT\e[0m", rows[2])
21
+ assert_equal("\tProducts : veye, awesome_print, rainbow, render-as-markdown, \
22
+ rest-client, terminal-table, aruba, childprocess, cucumber, rspec-expectations, builder, \
23
+ gherkin, multi_json, multi_test, rake", rows[3])
24
+ end
25
+ end
26
+
27
+ def test_get_licenses_json
28
+ VCR.use_cassette('project_license') do
29
+ output = capture_stdout do |x|
30
+ Veye::Project::License.get_licenses(@project_key, @api_key, {format: "json"})
31
+ end
32
+
33
+ res = JSON.parse(output)
34
+ unknown_licenses = res["licenses"]["unknown"]
35
+ assert_equal([{"name" => "gli", "prod_key" => "gli"}], unknown_licenses)
36
+ end
37
+ end
38
+
39
+ def test_get_licenses_csv
40
+ VCR.use_cassette('project_license') do
41
+ output = capture_stdout do |x|
42
+ Veye::Project::License.get_licenses(@project_key, @api_key, {format: "csv"})
43
+ end
44
+
45
+ rows = CSV.parse(output)
46
+ assert_equal ["nr", "license", "product_keys"], rows[0]
47
+ assert_equal ["1", "unknown", "gli"], rows[1]
48
+ assert_equal ["2", "MIT", "veye", "awesome_print", "rainbow", "render-as-markdown",
49
+ "rest-client", "terminal-table", "aruba", "childprocess", "cucumber",
50
+ "rspec-expectations", "builder", "gherkin", "multi_json", "multi_test", "rake"],
51
+ rows[2]
52
+ end
53
+ end
54
+
55
+
56
+ def test_get_licenses_table
57
+ VCR.use_cassette('project_license') do
58
+ output = capture_stdout do |x|
59
+ Veye::Project::License.get_licenses(@project_key, @api_key, {format: "table"})
60
+ end
61
+
62
+ rows = output.split(/\n/)
63
+ assert_equal "+-------+----------------------------+--------------------+", rows[0]
64
+ assert_equal "| Licences |", rows[1]
65
+ assert_equal "+-------+----------------------------+--------------------+", rows[2]
66
+ assert_equal "| index | license | product_keys |", rows[3]
67
+ assert_equal "+-------+----------------------------+--------------------+", rows[4]
68
+ assert_equal "| 1 | unknown | gli |", rows[5]
69
+ end
70
+ end
71
+ end
72
+
@@ -0,0 +1,29 @@
1
+ require 'test_helper'
2
+
3
+ class ServiceTest < Minitest::Test
4
+ def setup
5
+ init_environment #load config file and set keys
6
+ end
7
+ def test_ping_output_when_success
8
+ VCR.use_cassette('services_ping') do
9
+ output = capture_stdout do
10
+ Veye::Service.ping
11
+ end
12
+ assert_equal "\e[32mpong\e[0m\n", output
13
+ end
14
+ end
15
+
16
+ def test_ping_output_when_failure
17
+ resp = Minitest::Mock.new
18
+ resp.expect :success, false
19
+ resp.expect :code, 503
20
+ resp.expect :message, "Test request failure"
21
+ resp.expect :nil? , false
22
+
23
+ output = capture_stdout do
24
+ Veye::Service.show_result(resp)
25
+ end
26
+ expected = "VersionEye didnt recognized secret word.Answered \e[31m503\e[0m, \e[33mTest request failure\e[0m\n"
27
+ assert_equal expected, output
28
+ end
29
+ end
data/test/test_helper.rb CHANGED
@@ -1,9 +1,34 @@
1
- require 'test/unit'
1
+ require 'minitest/autorun'
2
+ require "minitest/reporters"
2
3
 
3
- # Add test libraries you want to use here, e.g. mocha
4
+ require 'webmock/minitest'
5
+ require 'vcr'
6
+ require 'veye'
7
+ require "stringio"
4
8
 
5
- class Test::Unit::TestCase
9
+ def capture_stdout
10
+ begin
11
+ # The output stream must be an IO-like object. In this case we capture it in
12
+ # an in-memory IO object so we can return the string value. You can assign any
13
+ # IO object here.
14
+ previous_stdout, $stdout = $stdout, StringIO.new
15
+ yield
16
+ $stdout.string
17
+ rescue => e
18
+ $stderr.puts "Error during output capture: #{e}"
19
+ ensure
20
+ # Restore the previous value of stdout
21
+ $stdout = previous_stdout
22
+ end
23
+ end
24
+
25
+ Minitest::Reporters.use!
26
+
27
+ VCR.configure do |config|
28
+ config.cassette_library_dir = "test/fixtures/vcr_cassettes"
29
+ config.hook_into :webmock # or :fakeweb
30
+ end
6
31
 
32
+ class Minitest::Test
7
33
  # Add global extensions to the test case class here
8
-
9
34
  end