veye 0.2.1 → 0.3.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 (95) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +48 -41
  3. data/README.md +36 -17
  4. data/bin/veye +176 -47
  5. data/bundle +0 -0
  6. data/changelogs.md +19 -0
  7. data/lib/veye/api/package.rb +16 -2
  8. data/lib/veye/api/project.rb +41 -6
  9. data/lib/veye/base_executor.rb +81 -16
  10. data/lib/veye/github/delete.rb +2 -4
  11. data/lib/veye/github/import.rb +3 -4
  12. data/lib/veye/package/follow.rb +9 -9
  13. data/lib/veye/package/info.rb +4 -4
  14. data/lib/veye/package/references.rb +4 -6
  15. data/lib/veye/package/search.rb +2 -1
  16. data/lib/veye/package/versions.rb +37 -0
  17. data/lib/veye/package.rb +2 -0
  18. data/lib/veye/project/check.rb +19 -9
  19. data/lib/veye/project.rb +86 -2
  20. data/lib/veye/version.rb +1 -1
  21. data/lib/veye/views/base_csv.rb +1 -1
  22. data/lib/veye/views/github/info_csv.rb +1 -1
  23. data/lib/veye/views/github/info_pretty.rb +1 -1
  24. data/lib/veye/views/github/info_table.rb +2 -2
  25. data/lib/veye/views/package/info_csv.rb +4 -3
  26. data/lib/veye/views/package/info_pretty.rb +4 -2
  27. data/lib/veye/views/package/info_table.rb +4 -1
  28. data/lib/veye/views/package/versions_csv.rb +24 -0
  29. data/lib/veye/views/package/versions_json.rb +15 -0
  30. data/lib/veye/views/package/versions_pretty.rb +23 -0
  31. data/lib/veye/views/package/versions_table.rb +27 -0
  32. data/lib/veye/views/package.rb +4 -0
  33. data/lib/veye/views/project/dependency_csv.rb +18 -10
  34. data/lib/veye/views/project/dependency_pretty.rb +13 -2
  35. data/lib/veye/views/project/dependency_table.rb +8 -2
  36. data/lib/veye/views/project/info_csv.rb +9 -3
  37. data/lib/veye/views/project/info_markdown.rb +7 -2
  38. data/lib/veye/views/project/info_pretty.rb +6 -1
  39. data/lib/veye/views/project/info_table.rb +8 -3
  40. data/lib/veye.rb +26 -3
  41. data/test/api/package_test.rb +15 -0
  42. data/test/api/project_test.rb +83 -19
  43. data/test/base/base_executor_test.rb +87 -0
  44. data/test/fixtures/vcr_cassettes/github_delete.yml +7 -7
  45. data/test/fixtures/vcr_cassettes/github_import.yml +11 -13
  46. data/test/fixtures/vcr_cassettes/github_info.yml +10 -10
  47. data/test/fixtures/vcr_cassettes/github_list.yml +12 -12
  48. data/test/fixtures/vcr_cassettes/github_sync.yml +7 -7
  49. data/test/fixtures/vcr_cassettes/package_follow.yml +10 -10
  50. data/test/fixtures/vcr_cassettes/package_follow_status.yml +7 -7
  51. data/test/fixtures/vcr_cassettes/package_info.yml +17 -18
  52. data/test/fixtures/vcr_cassettes/package_info_default.yml +54 -0
  53. data/test/fixtures/vcr_cassettes/package_info_versioned.yml +54 -0
  54. data/test/fixtures/vcr_cassettes/package_reference.yml +8 -8
  55. data/test/fixtures/vcr_cassettes/package_search.yml +8 -8
  56. data/test/fixtures/vcr_cassettes/package_unfollow.yml +7 -7
  57. data/test/fixtures/vcr_cassettes/package_versions.yml +44 -0
  58. data/test/fixtures/vcr_cassettes/project_check_new.yml +33 -30
  59. data/test/fixtures/vcr_cassettes/project_check_update.yml +29 -30
  60. data/test/fixtures/vcr_cassettes/project_delete.yml +8 -8
  61. data/test/fixtures/vcr_cassettes/project_delete_for_licenses.yml +48 -0
  62. data/test/fixtures/vcr_cassettes/project_delete_for_update.yml +46 -0
  63. data/test/fixtures/vcr_cassettes/project_delete_merge_child.yml +46 -0
  64. data/test/fixtures/vcr_cassettes/project_delete_merge_parent.yml +46 -0
  65. data/test/fixtures/vcr_cassettes/project_get.yml +11 -12
  66. data/test/fixtures/vcr_cassettes/project_license.yml +11 -12
  67. data/test/fixtures/vcr_cassettes/project_license_command.yml +49 -0
  68. data/test/fixtures/vcr_cassettes/project_list.yml +14 -14
  69. data/test/fixtures/vcr_cassettes/project_merge.yml +46 -0
  70. data/test/fixtures/vcr_cassettes/project_unmerge.yml +46 -0
  71. data/test/fixtures/vcr_cassettes/project_update.yml +15 -16
  72. data/test/fixtures/vcr_cassettes/project_upload.yml +17 -16
  73. data/test/fixtures/vcr_cassettes/project_upload_for_licenses.yml +107 -0
  74. data/test/fixtures/vcr_cassettes/project_upload_for_update.yml +105 -0
  75. data/test/fixtures/vcr_cassettes/project_upload_merge_child.yml +65 -0
  76. data/test/fixtures/vcr_cassettes/project_upload_merge_parent.yml +104 -0
  77. data/test/fixtures/vcr_cassettes/project_upload_with_args.yml +106 -0
  78. data/test/fixtures/vcr_cassettes/services_ping.yml +6 -8
  79. data/test/fixtures/vcr_cassettes/user_get_favorites.yml +10 -10
  80. data/test/fixtures/vcr_cassettes/user_get_profile.yml +10 -10
  81. data/test/github_delete_test.rb +5 -3
  82. data/test/github_import_test.rb +8 -15
  83. data/test/github_info_test.rb +2 -2
  84. data/test/package_follow_test.rb +3 -3
  85. data/test/package_info_test.rb +16 -15
  86. data/test/package_reference_test.rb +4 -4
  87. data/test/package_search_test.rb +4 -4
  88. data/test/package_versions_test.rb +73 -0
  89. data/test/project_check_test.rb +107 -79
  90. data/test/project_license_test.rb +29 -11
  91. data/test/project_test.rb +59 -0
  92. data/test/user_me_test.rb +4 -4
  93. data/veye.gemspec +10 -8
  94. data/veye.log +11 -0
  95. metadata +73 -20
@@ -6,7 +6,7 @@ class GithubDeleteTest < Minitest::Test
6
6
  @api_key = ENV['VEYE_API_KEY']
7
7
  @repo_name = 'versioneye/veye'
8
8
  @branch = "master"
9
- @opts = {branch: @branch}
9
+ @filename = 'Gemfile.lock'
10
10
 
11
11
  import_project
12
12
  end
@@ -14,14 +14,16 @@ class GithubDeleteTest < Minitest::Test
14
14
  def import_project
15
15
  #import project before testing
16
16
  VCR.use_cassette('github_import') do
17
- Veye::API::Github.import_repo(@api_key, @repo_name, @branch, 'Gemfile.locl')
17
+ res = Veye::API::Github.import_repo(@api_key, @repo_name, @branch, @filename)
18
+
19
+ refute_nil res, "Import failed"
18
20
  end
19
21
  end
20
22
 
21
23
  def test_delete_default
22
24
  VCR.use_cassette('github_delete') do
23
25
  res = capture_stdout do
24
- Veye::Github::Delete.delete_repo(@api_key, @repo_name, @opts)
26
+ Veye::Github::Delete.delete_repo(@api_key, @repo_name, @branch, {})
25
27
  end
26
28
 
27
29
  refute_nil res, "No command output"
@@ -7,51 +7,46 @@ class GithubImportTest < Minitest::Test
7
7
  @api_key = ENV['VEYE_API_KEY']
8
8
  @repo_name = 'versioneye/veye'
9
9
  @branch = "master"
10
- @file = "Gemfile.lock"
11
-
12
- @opts = {
13
- file: @file,
14
- branch: @branch
15
- }
10
+ @filename = "Gemfile.lock"
16
11
  end
17
12
 
18
13
  def test_import_default
19
14
  VCR.use_cassette('github_import') do
20
15
  res = capture_stdout do
21
- Veye::Github::Import.import_repo(@api_key, @repo_name, @opts)
16
+ Veye::Github::Import.import_repo(@api_key, @repo_name, @branch, @filename)
22
17
  end
23
18
 
24
19
  refute_nil res, "Command output was nil"
25
20
  rows = res.split(/\n/)
26
21
  assert_equal "\t\e[32mversioneye/veye\e[0m - \e[1mruby\e[0m", rows[0]
27
- assert_equal "\tDescription : VersionEye command line tool ", rows[1]
22
+ assert_equal "\tDescription : VersionEye command line tool implemented in Ruby", rows[1]
28
23
  assert_equal "\tOwner login : versioneye", rows[2]
29
24
  assert_equal "\tOwner type : organization", rows[3]
30
25
  assert_equal "\tPrivate : false", rows[4]
31
26
  assert_equal "\tFork : false", rows[5]
32
27
  assert_equal "\tBranches : ", rows[6]
33
- assert_equal "\tImported : rubygem_versioneye_veye_1", rows[7]
34
28
  end
35
29
  end
36
30
 
37
31
  def test_import_csv
38
32
  VCR.use_cassette('github_import') do
39
33
  res = capture_stdout do
40
- Veye::Github::Import.import_repo(@api_key, @repo_name, @opts.merge({format: 'csv'}))
34
+ Veye::Github::Import.import_repo(@api_key, @repo_name, @branch, @filename, {format: 'csv'})
41
35
  end
42
36
 
43
37
  refute_nil res, "Command output was nil"
44
38
  dt = CSV.parse(res)
45
39
  assert_equal ["name", "language", "owner_login", "owner_type", "private", "fork", "branches", "imported_projects", "description"], dt[0]
46
40
  assert_equal ["versioneye/veye", "ruby", "versioneye", "organization", "false"], dt[1].take(5)
47
- assert_equal ["false", nil, "rubygem_versioneye_veye_1", "VersionEye command line tool "], dt[1].drop(5)
41
+ assert_equal ["false", nil, '57c3f017864739000eca5357|57c3f39712b5260016707bea',
42
+ "VersionEye command line tool implemented in Ruby"], dt[1].drop(5)
48
43
  end
49
44
  end
50
45
 
51
46
  def test_import_json
52
47
  VCR.use_cassette('github_import') do
53
48
  res = capture_stdout do
54
- Veye::Github::Import.import_repo(@api_key, @repo_name, @opts.merge({format: 'json'}))
49
+ Veye::Github::Import.import_repo(@api_key, @repo_name, @branch, @filename, {format: 'json'})
55
50
  end
56
51
 
57
52
  refute_nil res, "No command output"
@@ -68,7 +63,6 @@ class GithubImportTest < Minitest::Test
68
63
 
69
64
  refute_nil dt["projects"]
70
65
  project = dt["projects"].first
71
- assert_equal "rubygem_versioneye_veye_1", project["project_key"]
72
66
  assert_equal "versioneye/veye", project["name"]
73
67
  assert_equal "RubyGem", project["project_type"]
74
68
  assert_equal true, project["public"]
@@ -79,7 +73,7 @@ class GithubImportTest < Minitest::Test
79
73
  def test_import_table
80
74
  VCR.use_cassette('github_import') do
81
75
  res = capture_stdout do
82
- Veye::Github::Import.import_repo(@api_key, @repo_name, @opts.merge({format: 'table'}))
76
+ Veye::Github::Import.import_repo(@api_key, @repo_name, @branch, @filename, {format: 'table'})
83
77
  end
84
78
 
85
79
  refute_nil res, "No command output"
@@ -88,7 +82,6 @@ class GithubImportTest < Minitest::Test
88
82
  assert_match(/\| name\s+\| language \| owner_login \| owner_type\s+\| private \| fork\s+\|/ , rows[3])
89
83
  assert_match(/branches \| imported_projects\s+\| description\s+\|/, rows[3])
90
84
  assert_match(/\| versioneye \| veye | ruby\s+\| versioneye \| organization \| false/, rows[5])
91
- assert_match(/\| false \|\s+\| rubygem_versioneye_veye_1 \| VersionEye command line tool\s+\|/, rows[5])
92
85
  end
93
86
  end
94
87
  end
@@ -17,7 +17,7 @@ class GithubInfoTest < Minitest::Test
17
17
  refute_nil output
18
18
  rows = output.split(/\n/)
19
19
  assert_equal "\t\e[32mversioneye/veye\e[0m - \e[1mruby\e[0m", rows[0]
20
- assert_equal "\tDescription : VersionEye command line tool ", rows[1]
20
+ assert_equal "\tDescription : VersionEye command line tool implemented in Ruby" , rows[1]
21
21
  assert_equal "\tOwner login : versioneye", rows[2]
22
22
  assert_equal "\tOwner type : organization", rows[3]
23
23
  assert_equal "\tPrivate : false", rows[4]
@@ -37,7 +37,7 @@ class GithubInfoTest < Minitest::Test
37
37
  assert_equal ["name", "language", "owner_login", "owner_type", "private", "fork", "branches", "imported_projects", "description"], rows[0]
38
38
  assert_equal(
39
39
  ["versioneye/veye", "ruby", "versioneye", "organization", "false", "false",
40
- nil, nil, "VersionEye command line tool "],
40
+ nil, nil, "VersionEye command line tool implemented in Ruby"],
41
41
  rows[1]
42
42
  )
43
43
  end
@@ -9,7 +9,7 @@ class PackageFollowTest < MiniTest::Test
9
9
  def test_get_follow_status
10
10
  VCR.use_cassette('package_follow_status') do
11
11
  out = capture_stdout do
12
- Veye::Package::Follow.get_follow_status(@api_key, 'ruby/ruby')
12
+ Veye::Package::Follow.get_follow_status(@api_key, 'ruby', 'ruby')
13
13
  end
14
14
  expected = "Following `ruby`: \e[32mfalse\e[0m\n"
15
15
  assert_equal expected, out
@@ -19,7 +19,7 @@ class PackageFollowTest < MiniTest::Test
19
19
  def test_follow
20
20
  VCR.use_cassette('package_follow') do
21
21
  out = capture_stdout do
22
- Veye::Package::Follow.follow(@api_key, 'ruby/ruby')
22
+ Veye::Package::Follow.follow(@api_key, 'ruby', 'ruby')
23
23
  end
24
24
  expected = "Following `ruby`: \e[32mtrue\e[0m\n"
25
25
  assert_equal expected, out
@@ -29,7 +29,7 @@ class PackageFollowTest < MiniTest::Test
29
29
  def test_unfollow
30
30
  VCR.use_cassette('package_unfollow') do
31
31
  out = capture_stdout do
32
- Veye::Package::Follow.unfollow(@api_key, 'ruby/ruby')
32
+ Veye::Package::Follow.unfollow(@api_key, 'ruby', 'ruby')
33
33
  end
34
34
  expected = "Following `ruby`: \e[32mfalse\e[0m\n"
35
35
  assert_equal expected, out
@@ -8,14 +8,14 @@ class PackageInfoTest < Minitest::Test
8
8
  end
9
9
 
10
10
  def test_info_default
11
- VCR.use_cassette('package_info') do
11
+ VCR.use_cassette('package_info_default') do
12
12
  output = capture_stdout do
13
- Veye::Package::Info.get_package(@api_key, 'ruby/veye')
13
+ Veye::Package::Info.get_package(@api_key, 'veye', 'ruby')
14
14
  end
15
15
  refute_nil output, "No command output"
16
16
 
17
17
  rows = output.split(/\n/)
18
- assert_equal "\t\e[32m\e[1mveye\e[0m - \e[1m0.1.1\e[0m", rows[0]
18
+ assert_match(/\t\e\[32m\e\[1mveye\e\[0m/ , rows[0])
19
19
  assert_equal "\tLanguage : ruby", rows[1]
20
20
  assert_equal "\tLicense : MIT", rows[2]
21
21
  assert_equal "\tProduct type : RubyGem", rows[3]
@@ -24,36 +24,37 @@ class PackageInfoTest < Minitest::Test
24
24
  end
25
25
 
26
26
  def test_info_csv_format
27
- VCR.use_cassette('package_info') do
27
+ VCR.use_cassette('package_info_versioned') do
28
28
  output = capture_stdout do
29
- Veye::Package::Info.get_package(@api_key, 'ruby/veye', {format: 'csv'})
29
+ Veye::Package::Info.get_package(@api_key, 'veye', 'ruby', '0.2.1', {format: 'csv'})
30
30
  end
31
-
32
31
  refute_nil output, "No command output"
32
+
33
33
  rows = CSV.parse(output)
34
- assert_equal ["name", "version", "language", "prod_key", "licence", "prod_type", "description", "link"], rows[0]
35
- assert_equal ["veye", "0.1.1", "ruby", "veye", nil, "RubyGem", nil, nil], rows[1]
34
+ assert_equal ["name", "version", "language", "prod_key", "licence", "prod_type", "description", "link", 'cves'], rows[0]
35
+ assert_equal ["veye", "0.2.1", "ruby", "veye", nil, "RubyGem"], rows[1].take(6)
36
36
  end
37
37
  end
38
38
 
39
39
  def test_info_json_format
40
- VCR.use_cassette('package_info') do
40
+ VCR.use_cassette('package_info_versioned') do
41
41
  output = capture_stdout do
42
- Veye::Package::Info.get_package(@api_key, 'ruby/veye', {format: 'json'})
42
+ Veye::Package::Info.get_package(@api_key, 'veye', 'ruby', '0.2.1', {format: 'json'})
43
43
  end
44
+
44
45
  refute_nil output
45
46
  dt = JSON.parse(output)
46
47
  package = dt["package"]
47
48
  assert_equal "veye", package["name"]
48
49
  assert_equal "ruby", package["language"]
49
50
  assert_equal "veye", package["prod_key"]
50
- assert_equal "0.1.1", package["version"]
51
+ assert_match(/\d+\.\d+\.\d+/, package["version"])
51
52
  assert_equal "RubyGem", package["prod_type"]
52
53
  assert_equal "MIT", package["license_info"]
53
54
 
54
55
  dep = package["dependencies"].first
55
56
  assert_equal "awesome_print", dep["name"]
56
- assert_equal ">= 1.6", dep["version"]
57
+ assert_equal "~> 1.6", dep["version"]
57
58
 
58
59
  license = package["licenses"].first
59
60
  assert_equal "MIT", license["name"]
@@ -62,15 +63,15 @@ class PackageInfoTest < Minitest::Test
62
63
  end
63
64
 
64
65
  def test_info_table_format
65
- VCR.use_cassette('package_info') do
66
+ VCR.use_cassette('package_info_versioned') do
66
67
  output = capture_stdout do
67
- Veye::Package::Info.get_package(@api_key, 'ruby/veye', {format: 'table'})
68
+ Veye::Package::Info.get_package(@api_key, 'veye', 'ruby', '0.2.1', {format: 'table'})
68
69
  end
69
70
  refute_nil output, "No command output"
70
71
  rows = output.split(/\n/)
71
72
  assert_match(/\|\s+Package information\s+\|/, rows[1])
72
73
  assert_match(/\| name \| version \| product_key \| language \| license \| description/, rows[3])
73
- assert_match(/\| veye \| 0.0.9 \| veye\s+\| ruby\s+| MIT\s+\|/, rows[5])
74
+ assert_match(/\| veye \| 0.2.1 \| veye\s+\| ruby\s+| MIT\s+\|/, rows[5])
74
75
  end
75
76
  end
76
77
  end
@@ -10,7 +10,7 @@ class PackageReferenceTest < MiniTest::Test
10
10
  def test_reference_with_results
11
11
  VCR.use_cassette('package_reference') do
12
12
  output = capture_stdout do
13
- Veye::Package::References.get_references(@api_key, 'ruby/ruby', {})
13
+ Veye::Package::References.get_references(@api_key, 'ruby', 'ruby', {})
14
14
  end
15
15
  refute_nil output, "Command output was nil"
16
16
  rows = output.split(/\n/)
@@ -25,7 +25,7 @@ class PackageReferenceTest < MiniTest::Test
25
25
  def test_reference_csv_format
26
26
  VCR.use_cassette('package_reference') do
27
27
  output = capture_stdout do
28
- Veye::Package::References.get_references(@api_key, 'ruby/ruby', {format: 'csv'})
28
+ Veye::Package::References.get_references(@api_key, 'ruby', 'ruby', {format: 'csv'})
29
29
  end
30
30
  refute_nil output, "Command output was nil"
31
31
  rows = CSV.parse(output)
@@ -37,7 +37,7 @@ class PackageReferenceTest < MiniTest::Test
37
37
  def test_reference_json_format
38
38
  VCR.use_cassette('package_reference') do
39
39
  output = capture_stdout do
40
- Veye::Package::References.get_references(@api_key, 'ruby/ruby', {format: 'json'})
40
+ Veye::Package::References.get_references(@api_key, 'ruby', 'ruby', {format: 'json'})
41
41
  end
42
42
  refute_nil output, "Command output was nil"
43
43
  dt = JSON.parse(output)
@@ -53,7 +53,7 @@ class PackageReferenceTest < MiniTest::Test
53
53
  def test_reference_table_format
54
54
  VCR.use_cassette('package_reference') do
55
55
  output = capture_stdout do
56
- Veye::Package::References.get_references(@api_key, 'ruby/ruby', {format: 'table'})
56
+ Veye::Package::References.get_references(@api_key, 'ruby', 'ruby', {format: 'table'})
57
57
  end
58
58
  refute_nil output, "Command output was nil"
59
59
  rows = output.split(/\n/)
@@ -16,7 +16,7 @@ class PackageSearchTest < MiniTest::Test
16
16
  rows = output.split(/\n/)
17
17
  assert_equal " 1 - \e[32m\e[1mveye\e[0m", rows[0]
18
18
  assert_equal "\tProduct key : veye", rows[1]
19
- assert_equal "\tLatest version : \e[32m\e[1m0.1.1\e[0m", rows[2]
19
+ assert_equal "\tLatest version : \e[32m\e[1m0.2.1\e[0m", rows[2]
20
20
  assert_equal "\tLanguage : ruby", rows[3]
21
21
  end
22
22
  end
@@ -30,7 +30,7 @@ class PackageSearchTest < MiniTest::Test
30
30
 
31
31
  rows = CSV.parse(output)
32
32
  assert_equal ["nr", "name", "version", "prod_key", "language", "group_id"], rows[0]
33
- assert_equal ["1", "veye", "0.1.1", "veye", "ruby", nil], rows[1]
33
+ assert_equal ["1", "veye", "0.2.1", "veye", "ruby", nil], rows[1]
34
34
  end
35
35
  end
36
36
 
@@ -46,7 +46,7 @@ class PackageSearchTest < MiniTest::Test
46
46
  assert_equal "veye", res["name"]
47
47
  assert_equal "ruby", res["language"]
48
48
  assert_equal "veye", res["prod_key"]
49
- assert_equal "0.1.1", res["version"]
49
+ assert_equal "0.2.1", res["version"]
50
50
  assert_equal "RubyGem", res["prod_type"]
51
51
  end
52
52
  end
@@ -61,7 +61,7 @@ class PackageSearchTest < MiniTest::Test
61
61
  rows = output.split(/\n/)
62
62
  assert_match(/\|\s+Package search\s+\|/, rows[1])
63
63
  assert_match(/\| index \| name \| version \| product_key \| language \|/, rows[3])
64
- assert_match(/\| 1\s+\| veye \| 0.1.1\s+\| veye\s+\| ruby\s+\|/, rows[5])
64
+ assert_match(/\| 1\s+\| veye \| 0.2.1\s+\| veye\s+\| ruby\s+\|/, rows[5])
65
65
  end
66
66
  end
67
67
  end
@@ -0,0 +1,73 @@
1
+ require 'test_helper'
2
+ require 'csv'
3
+ require 'json'
4
+
5
+ class PackageVersionsTest < Minitest::Test
6
+ def setup
7
+ init_environment
8
+ @api_key = ENV['VEYE_API_KEY']
9
+ end
10
+
11
+ def test_versions_default
12
+ VCR.use_cassette('package_versions') do
13
+ output = capture_stdout do
14
+ Veye::Package::Versions.get_list(@api_key, 'ruby', 'ruby', 10, 0, {})
15
+ end
16
+ refute_nil output, 'No response from the API'
17
+
18
+ rows = output.split(/\n/)
19
+ assert_equal "\t\e[32m\e[1mruby\e[0m - \e[1m0.1.0\e[0m", rows[0]
20
+ assert_equal "\tLanguage : ruby", rows[1]
21
+ assert_equal "\tProduct type : RubyGem", rows[2]
22
+ assert_equal "\tProduct key : ruby", rows[3]
23
+ assert_equal "\tShowing items : 10 after skipping 0 items", rows[4]
24
+ assert_equal "\t0.1.0 : 1\t2011-02-28T10:00:00.000+00:00", rows[5]
25
+ end
26
+ end
27
+
28
+ def test_versions_csv_format
29
+ VCR.use_cassette('package_versions') do
30
+ output = capture_stdout do
31
+ Veye::Package::Versions.get_list(@api_key, 'ruby', 'ruby', 10, 0, {format: 'csv'})
32
+ end
33
+ refute_nil output, "No API response"
34
+
35
+ rows = CSV.parse(output)
36
+ assert_equal ['nr', 'version', 'language', 'prod_key', 'prod_type', 'released_at'], rows[0]
37
+ assert_equal ['1', '0.1.0', 'ruby', 'ruby', 'RubyGem', '2011-02-28T10:00:00.000+00:00'], rows[1]
38
+ end
39
+ end
40
+
41
+ def test_versions_json_format
42
+ VCR.use_cassette('package_versions') do
43
+ output = capture_stdout do
44
+ Veye::Package::Versions.get_list(@api_key, 'ruby', 'ruby', 10, 0, {format: 'json'})
45
+ end
46
+ refute_nil output, 'No API response'
47
+
48
+ dt = JSON.parse output
49
+ assert_equal 'ruby', dt['results']['prod_key']
50
+ assert_equal 'ruby', dt['results']['language']
51
+ assert_equal '0.1.0', dt['results']['versions'].first['version']
52
+ assert_equal 10, dt['pagination']['n']
53
+ assert_equal 0, dt['pagination']['from']
54
+ end
55
+
56
+ end
57
+
58
+ def test_version_table_format
59
+ VCR.use_cassette('package_versions') do
60
+ output = capture_stdout do
61
+ Veye::Package::Versions.get_list(@api_key, 'ruby', 'ruby', 10, 0, {format: 'table'})
62
+ end
63
+ refute_nil output, 'No API response'
64
+
65
+ rows = output.split(/\n/)
66
+
67
+ assert_match(/package versions/i, rows[1])
68
+ assert_match(/| nr | name | version | released_at\s+|\s+product_key/i, rows[3])
69
+ assert_match(/| 1 | ruby | 0.1.0 | 2011-02-28T10:00:00.000+00:00 | ruby/i, rows[5])
70
+ end
71
+ end
72
+
73
+ end