hammer_cli_foreman 2.1.2 → 2.4.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 (100) hide show
  1. checksums.yaml +4 -4
  2. data/doc/release_notes.md +35 -4
  3. data/doc/testing.md +13 -0
  4. data/lib/hammer_cli_foreman.rb +0 -4
  5. data/lib/hammer_cli_foreman/architecture.rb +5 -5
  6. data/lib/hammer_cli_foreman/associating_commands.rb +4 -5
  7. data/lib/hammer_cli_foreman/auth.rb +4 -4
  8. data/lib/hammer_cli_foreman/bookmark.rb +6 -6
  9. data/lib/hammer_cli_foreman/command_extensions/ping.rb +10 -1
  10. data/lib/hammer_cli_foreman/command_extensions/status.rb +1 -1
  11. data/lib/hammer_cli_foreman/commands.rb +3 -1
  12. data/lib/hammer_cli_foreman/compute_profile.rb +5 -5
  13. data/lib/hammer_cli_foreman/compute_resource/ovirt.rb +1 -0
  14. data/lib/hammer_cli_foreman/config_group.rb +5 -5
  15. data/lib/hammer_cli_foreman/host.rb +3 -2
  16. data/lib/hammer_cli_foreman/hosts/common_update_options.rb +17 -10
  17. data/lib/hammer_cli_foreman/location.rb +2 -0
  18. data/lib/hammer_cli_foreman/mail_notification.rb +2 -2
  19. data/lib/hammer_cli_foreman/model.rb +5 -5
  20. data/lib/hammer_cli_foreman/operating_system.rb +10 -9
  21. data/lib/hammer_cli_foreman/organization.rb +2 -0
  22. data/lib/hammer_cli_foreman/output/fields.rb +1 -1
  23. data/lib/hammer_cli_foreman/output/formatters.rb +1 -1
  24. data/lib/hammer_cli_foreman/ping.rb +20 -11
  25. data/lib/hammer_cli_foreman/references.rb +16 -0
  26. data/lib/hammer_cli_foreman/settings.rb +16 -2
  27. data/lib/hammer_cli_foreman/testing/api_expectations.rb +10 -0
  28. data/lib/hammer_cli_foreman/usergroup.rb +5 -5
  29. data/lib/hammer_cli_foreman/version.rb +1 -1
  30. data/lib/minitest/coverage_reporter.rb +94 -0
  31. data/lib/minitest/hammer_coverage_plugin.rb +19 -0
  32. data/locale/ca/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  33. data/locale/de/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  34. data/locale/en/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  35. data/locale/en_GB/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  36. data/locale/es/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  37. data/locale/fr/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  38. data/locale/it/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  39. data/locale/ja/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  40. data/locale/ko/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  41. data/locale/pt_BR/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  42. data/locale/ru/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  43. data/locale/zh_CN/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  44. data/locale/zh_TW/LC_MESSAGES/hammer-cli-foreman.mo +0 -0
  45. data/test/functional/architecture_test.rb +49 -0
  46. data/test/functional/audit_test.rb +86 -63
  47. data/test/functional/bookmark_test.rb +20 -0
  48. data/test/functional/commands/list_test.rb +11 -11
  49. data/test/functional/compute_profile_test.rb +47 -2
  50. data/test/functional/config_group_test.rb +50 -0
  51. data/test/functional/filter_test.rb +114 -47
  52. data/test/functional/host_test.rb +105 -19
  53. data/test/functional/location_test.rb +134 -0
  54. data/test/functional/mail_notification_test.rb +20 -0
  55. data/test/functional/media_test.rb +130 -0
  56. data/test/functional/model_test.rb +50 -0
  57. data/test/functional/operating_system_test.rb +51 -0
  58. data/test/functional/organization_test.rb +52 -0
  59. data/test/functional/realm_test.rb +103 -0
  60. data/test/functional/role_test.rb +9 -12
  61. data/test/functional/settings_test.rb +78 -1
  62. data/test/functional/status_test.rb +79 -13
  63. data/test/functional/user_test.rb +39 -0
  64. data/test/functional/usergroup_test.rb +51 -0
  65. data/test/test_helper.rb +5 -2
  66. data/test/unit/api/interactive_basic_auth_test.rb +3 -1
  67. data/test/unit/api/oauth/oauth_authentication_code_grant_test.rb +2 -2
  68. data/test/unit/api/oauth/oauth_password_grant_test.rb +2 -2
  69. data/test/unit/api_test.rb +3 -4
  70. data/test/unit/apipie_resource_mock.rb +25 -4
  71. data/test/unit/architecture_test.rb +10 -1
  72. data/test/unit/bookmark_test.rb +99 -0
  73. data/test/unit/commands_test.rb +19 -19
  74. data/test/unit/common_parameter_test.rb +1 -1
  75. data/test/unit/compute_profile_test.rb +87 -0
  76. data/test/unit/config_group_test.rb +10 -0
  77. data/test/unit/dependency_resolver_test.rb +4 -4
  78. data/test/unit/exception_handler_test.rb +13 -13
  79. data/test/unit/helpers/command.rb +5 -5
  80. data/test/unit/helpers/resource_disabled.rb +2 -2
  81. data/test/unit/host_test.rb +1 -24
  82. data/test/unit/id_resolver_test.rb +23 -23
  83. data/test/unit/mail_notification_test.rb +53 -0
  84. data/test/unit/media_test.rb +1 -1
  85. data/test/unit/model_test.rb +10 -0
  86. data/test/unit/operating_system_test.rb +14 -1
  87. data/test/unit/option_builders_test.rb +49 -49
  88. data/test/unit/option_sources/id_params_test.rb +2 -2
  89. data/test/unit/option_sources/ids_params_test.rb +2 -2
  90. data/test/unit/output/formatters_test.rb +21 -21
  91. data/test/unit/param_filters_test.rb +17 -17
  92. data/test/unit/partition_table_test.rb +2 -2
  93. data/test/unit/role_test.rb +2 -2
  94. data/test/unit/sessions_test.rb +24 -24
  95. data/test/unit/settings_test.rb +4 -0
  96. data/test/unit/template_test.rb +1 -1
  97. data/test/unit/usergroup_test.rb +10 -0
  98. metadata +26 -7
  99. data/lib/hammer_cli_foreman/trend.rb +0 -47
  100. data/test/functional/trend_test.rb +0 -22
@@ -44,11 +44,13 @@ describe HammerCLIForeman::Api::InteractiveBasicAuth do
44
44
 
45
45
  context "non-interactive mode" do
46
46
  it "doesn't ask for credentials when they're not provided" do
47
+ HammerCLI.stubs(:interactive?).returns false
47
48
  auth = HammerCLIForeman::Api::InteractiveBasicAuth.new(nil, nil)
48
49
  auth.expects(:ask_user).never
49
-
50
50
  request.expects(:basic_auth).with(nil, nil)
51
51
  auth.authenticate(request, args)
52
+ HammerCLI.unstub(:interactive?)
53
+
52
54
  end
53
55
  end
54
56
 
@@ -23,13 +23,13 @@ describe HammerCLIForeman::Api::Oauth::AuthenticationCodeGrant do
23
23
  it 'sets token as nil when all input parameter are missing' do
24
24
  auth.stubs(:get_code).returns('code')
25
25
  auth.set_token(nil, nil, nil, nil)
26
- assert_equal nil, auth.token
26
+ assert_nil auth.token
27
27
  end
28
28
 
29
29
  it 'sets token as nil when any input parameter is missing' do
30
30
  auth.stubs(:get_code).returns('code')
31
31
  auth.set_token(nil, params[:oidc_authorization_endpoint], params[:oidc_client_id], params[:oidc_redirect_uri])
32
- assert_equal nil, auth.token
32
+ assert_nil auth.token
33
33
  end
34
34
  end
35
35
 
@@ -22,12 +22,12 @@ describe HammerCLIForeman::Api::Oauth::PasswordGrant do
22
22
 
23
23
  it 'sets token as nil when all input parameter are missing' do
24
24
  auth.set_token(nil, nil, nil, nil)
25
- assert_equal nil, auth.token
25
+ assert_nil auth.token
26
26
  end
27
27
 
28
28
  it 'sets token as nil when any input parameter is missing' do
29
29
  auth.set_token(nil, params[:oidc_client_id], params[:username], params[:password])
30
- assert_equal nil, auth.token
30
+ assert_nil auth.token
31
31
  end
32
32
  end
33
33
 
@@ -9,17 +9,16 @@ describe HammerCLIForeman do
9
9
  let(:expected_resource) { HammerCLIForeman.foreman_resource!(:architectures) }
10
10
 
11
11
  it "finds resource for params with _id" do
12
- HammerCLIForeman.param_to_resource("architecture_id").name.must_equal expected_resource.name
12
+ _(HammerCLIForeman.param_to_resource("architecture_id").name).must_equal expected_resource.name
13
13
  end
14
14
 
15
15
  it "finds resource for params without _id" do
16
- HammerCLIForeman.param_to_resource("architecture").name.must_equal expected_resource.name
16
+ _(HammerCLIForeman.param_to_resource("architecture").name).must_equal expected_resource.name
17
17
  end
18
18
 
19
19
  it "returns nil for unknown resource" do
20
- HammerCLIForeman.param_to_resource("unknown").must_equal nil
20
+ assert_nil HammerCLIForeman.param_to_resource("unknown")
21
21
  end
22
-
23
22
  end
24
23
 
25
24
  end
@@ -237,6 +237,27 @@ module ResourceMocks
237
237
  )
238
238
  end
239
239
 
240
+ def self.bookmarks
241
+ ResourceMocks.mock_action_calls(
242
+ [:bookmarks, :index, []],
243
+ [:bookmarks, :show, {}]
244
+ )
245
+ end
246
+
247
+ def self.mail_notifications
248
+ ResourceMocks.mock_action_calls(
249
+ [:mail_notifications, :index, []],
250
+ [:mail_notifications, :show, {}]
251
+ )
252
+ end
253
+
254
+ def self.compute_profiles
255
+ ResourceMocks.mock_action_calls(
256
+ [:compute_profiles, :index, []],
257
+ [:compute_profiles, :show, {}]
258
+ )
259
+ end
260
+
240
261
  def self.parameters_index
241
262
  ResourceMocks.mock_action_call(:parameters, :index, [])
242
263
  end
@@ -308,11 +329,11 @@ module ResourceMocks
308
329
  )
309
330
  end
310
331
 
311
- def self.common_parameter_show
312
- ResourceMocks.mock_action_call(:common_parameters, :show, {
332
+ def self.common_parameter_list
333
+ ResourceMocks.mock_action_call(:common_parameters, :index, [{
313
334
  "name" => "my param",
314
- "value" => "random value"
315
- })
335
+ "value" => "random value",
336
+ }])
316
337
  end
317
338
 
318
339
  def self.config_groups_index
@@ -17,6 +17,8 @@ describe HammerCLIForeman::Architecture do
17
17
  context "parameters" do
18
18
  it_should_accept "no arguments"
19
19
  it_should_accept_search_params
20
+ it_should_fail_with 'organization param', ['--organization-id=1']
21
+ it_should_fail_with 'location param', ['--location-id=1']
20
22
  end
21
23
 
22
24
  context "output" do
@@ -37,6 +39,8 @@ describe HammerCLIForeman::Architecture do
37
39
  context "parameters" do
38
40
  it_should_accept "id", ["--id=1"]
39
41
  it_should_accept "name", ["--name=arch"]
42
+ it_should_fail_with 'organization param', ['--organization-id=1']
43
+ it_should_fail_with 'location param', ['--location-id=1']
40
44
  # it_should_fail_with "no arguments" # TODO: temporarily disabled, parameters are checked in the id resolver
41
45
  end
42
46
 
@@ -57,6 +61,8 @@ describe HammerCLIForeman::Architecture do
57
61
 
58
62
  context "parameters" do
59
63
  it_should_accept "name", ["--name=arch"]
64
+ it_should_fail_with 'organization param', ['--organization-id=1']
65
+ it_should_fail_with 'location param', ['--location-id=1']
60
66
  # it_should_fail_with "name missing", []
61
67
  # TODO: temporarily disabled, parameters are checked in the api
62
68
  end
@@ -71,6 +77,8 @@ describe HammerCLIForeman::Architecture do
71
77
  context "parameters" do
72
78
  it_should_accept "name", ["--name=arch"]
73
79
  it_should_accept "id", ["--id=1"]
80
+ it_should_fail_with 'organization param', ['--organization-id=1']
81
+ it_should_fail_with 'location param', ['--location-id=1']
74
82
  # it_should_fail_with "name or id missing", [] # TODO: temporarily disabled, parameters are checked in the id resolver
75
83
  end
76
84
 
@@ -84,9 +92,10 @@ describe HammerCLIForeman::Architecture do
84
92
  context "parameters" do
85
93
  it_should_accept "name", ["--name=arch", "--new-name=arch2"]
86
94
  it_should_accept "id", ["--id=1", "--new-name=arch2"]
95
+ it_should_fail_with 'organization param', ['--organization-id=1']
96
+ it_should_fail_with 'location param', ['--location-id=1']
87
97
  # it_should_fail_with "no params", [] # TODO: temporarily disabled, parameters are checked in the id resolver
88
98
  # it_should_fail_with "name or id missing", ["--new-name=arch2"] # TODO: temporarily disabled, parameters are checked in the id resolver
89
99
  end
90
-
91
100
  end
92
101
  end
@@ -0,0 +1,99 @@
1
+ # frozen_string_literal: true
2
+
3
+ require File.join(File.dirname(__FILE__), 'test_helper')
4
+ require File.join(File.dirname(__FILE__), 'apipie_resource_mock')
5
+
6
+ require 'hammer_cli_foreman/bookmark'
7
+
8
+ describe HammerCLIForeman::Bookmark do
9
+ include CommandTestHelper
10
+
11
+ context 'ListCommand' do
12
+ before :each do
13
+ ResourceMocks.bookmarks
14
+ end
15
+
16
+ let(:cmd) { HammerCLIForeman::Bookmark::ListCommand.new('', ctx) }
17
+
18
+ context 'parameters' do
19
+ it_should_accept 'no arguments'
20
+ it_should_fail_with 'organization param', ['--organization-id=1']
21
+ it_should_fail_with 'location param', ['--location-id=1']
22
+ end
23
+
24
+ context 'output' do
25
+ let(:expected_record_count) { count_records(cmd.resource.call(:index)) }
26
+
27
+ it_should_print_n_records
28
+ it_should_print_column 'Id'
29
+ it_should_print_column 'Name'
30
+ it_should_print_column 'Controller'
31
+ it_should_print_column 'Search Query'
32
+ it_should_print_column 'Public'
33
+ it_should_print_column 'Owner Id'
34
+ it_should_print_column 'Owner Type'
35
+ end
36
+ end
37
+
38
+ context 'InfoCommand' do
39
+ let(:cmd) { HammerCLIForeman::Bookmark::InfoCommand.new('', ctx) }
40
+
41
+ context 'parameters' do
42
+ it_should_accept 'id', ['--id=1']
43
+ it_should_accept 'name', ['--name=active']
44
+ it_should_fail_with 'organization param', ['--organization-id=1']
45
+ it_should_fail_with 'location param', ['--location-id=1']
46
+ end
47
+
48
+ context 'output' do
49
+ with_params ['--id=1'] do
50
+ it_should_print_n_records 1
51
+ it_should_print_column 'Id'
52
+ it_should_print_column 'Name'
53
+ it_should_print_column 'Controller'
54
+ it_should_print_column 'Search Query'
55
+ it_should_print_column 'Public'
56
+ it_should_print_column 'Owner Id'
57
+ it_should_print_column 'Owner Type'
58
+ end
59
+ end
60
+ end
61
+
62
+ context 'CreateCommand' do
63
+ let(:cmd) { HammerCLIForeman::Bookmark::CreateCommand.new('', ctx) }
64
+
65
+ context 'parameters' do
66
+ it_should_accept 'name, public, controller, query',
67
+ ['--name=active', '--public=1', '--controller=hosts',
68
+ '--query=last_report > "35 minutes ago" and (status.applied > 0 or status.restarted > 0)']
69
+ it_should_fail_with 'organization param', ['--organization-id=1']
70
+ it_should_fail_with 'location param', ['--location-id=1']
71
+ end
72
+
73
+ end
74
+
75
+ context 'DeleteCommand' do
76
+ let(:cmd) { HammerCLIForeman::Bookmark::DeleteCommand.new('', ctx) }
77
+
78
+ context 'parameters' do
79
+ it_should_accept 'id', ['--id=1']
80
+ it_should_accept 'name', ['--name=active']
81
+ it_should_fail_with 'organization param', ['--organization-id=1']
82
+ it_should_fail_with 'location param', ['--location-id=1']
83
+ end
84
+ end
85
+
86
+ context 'UpdateCommand' do
87
+ let(:cmd) { HammerCLIForeman::Bookmark::UpdateCommand.new('', ctx) }
88
+
89
+ context 'parameters' do
90
+ it_should_accept 'id', ['--id=1']
91
+ it_should_accept 'name', ['--name=active']
92
+ it_should_accept 'name, public, controller, query',
93
+ ['--name=active', '--public=1', '--controller=hosts',
94
+ '--query=last_report > "35 minutes ago" and (status.applied > 0 or status.restarted > 0)']
95
+ it_should_fail_with 'organization param', ['--organization-id=1']
96
+ it_should_fail_with 'location param', ['--location-id=1']
97
+ end
98
+ end
99
+ end
@@ -19,16 +19,16 @@ describe HammerCLIForeman do
19
19
  ]
20
20
 
21
21
  set = HammerCLIForeman.collection_to_common_format(old_format)
22
- set.must_be_kind_of HammerCLI::Output::RecordCollection
23
- set.first.must_equal(kind)
22
+ _(set).must_be_kind_of HammerCLI::Output::RecordCollection
23
+ _(set.first).must_equal(kind)
24
24
  end
25
25
 
26
26
  it "should convert common API format" do
27
27
  common_format = [ kind ]
28
28
 
29
29
  set = HammerCLIForeman.collection_to_common_format(common_format)
30
- set.must_be_kind_of HammerCLI::Output::RecordCollection
31
- set.first.must_equal(kind)
30
+ _(set).must_be_kind_of HammerCLI::Output::RecordCollection
31
+ _(set.first).must_equal(kind)
32
32
  end
33
33
 
34
34
  it "should convert new API format" do
@@ -46,12 +46,12 @@ describe HammerCLIForeman do
46
46
  }
47
47
 
48
48
  set = HammerCLIForeman.collection_to_common_format(new_format)
49
- set.must_be_kind_of HammerCLI::Output::RecordCollection
50
- set.first.must_equal(kind)
49
+ _(set).must_be_kind_of HammerCLI::Output::RecordCollection
50
+ _(set.first).must_equal(kind)
51
51
  end
52
52
 
53
53
  it "should rise error on unexpected format" do
54
- proc { HammerCLIForeman.collection_to_common_format('unexpected') }.must_raise RuntimeError
54
+ _(proc { HammerCLIForeman.collection_to_common_format('unexpected') }).must_raise RuntimeError
55
55
  end
56
56
 
57
57
  end
@@ -67,14 +67,14 @@ describe HammerCLIForeman do
67
67
  }
68
68
 
69
69
  rec = HammerCLIForeman.record_to_common_format(old_format)
70
- rec.must_equal(arch)
70
+ _(rec).must_equal(arch)
71
71
  end
72
72
 
73
73
  it "should convert common API format" do
74
74
  common_format = arch
75
75
 
76
76
  rec = HammerCLIForeman.record_to_common_format(common_format)
77
- rec.must_equal(arch)
77
+ _(rec).must_equal(arch)
78
78
 
79
79
  end
80
80
  end
@@ -92,7 +92,7 @@ describe HammerCLIForeman do
92
92
  })
93
93
  arch = HammerCLIForeman::Architecture::CreateCommand.new("", { :adapter => :csv, :interactive => false })
94
94
  out, err = capture_io { arch.run(["--name='i386'"]) }
95
- out.must_match("Message,Id,Name\nArchitecture created.,3,i386\n")
95
+ _(out).must_match("Message,Id,Name\nArchitecture created.,3,i386\n")
96
96
  end
97
97
  end
98
98
 
@@ -111,7 +111,7 @@ describe HammerCLIForeman do
111
111
  res.stubs(:get_identifier).returns(1)
112
112
  res.stubs(:get_associated_identifier).returns(1)
113
113
 
114
- res.get_new_ids.sort.must_equal ['1', '2']
114
+ _(res.get_new_ids.sort).must_equal ['1', '2']
115
115
  end
116
116
 
117
117
  it "should associate resource with new format" do
@@ -128,7 +128,7 @@ describe HammerCLIForeman do
128
128
  res.stubs(:get_identifier).returns(1)
129
129
  res.stubs(:get_associated_identifier).returns(1)
130
130
 
131
- res.get_new_ids.sort.must_equal ['1', '2']
131
+ _(res.get_new_ids.sort).must_equal ['1', '2']
132
132
  end
133
133
  end
134
134
 
@@ -152,7 +152,7 @@ describe HammerCLIForeman do
152
152
  end
153
153
  comm = DomainOuter::HostsCommand.new("", { :adapter => :csv, :interactive => false })
154
154
  out, err = capture_io { comm.run(["--id=5"]) }
155
- out.must_equal "Id,Name,Operating System,Host Group,IP,MAC\n2,random-host,,,192.168.100.112,6e:4b:3c:2c:8a:0a\n"
155
+ _(out).must_equal "Id,Name,Operating System,Host Group,IP,MAC\n2,random-host,,,192.168.100.112,6e:4b:3c:2c:8a:0a\n"
156
156
  end
157
157
  end
158
158
 
@@ -163,7 +163,7 @@ describe HammerCLIForeman::Command do
163
163
 
164
164
  it "uses foreman option builder" do
165
165
  builder = HammerCLIForeman::Command.option_builder
166
- builder.class.must_equal HammerCLIForeman::ForemanOptionBuilder
166
+ _(builder.class).must_equal HammerCLIForeman::ForemanOptionBuilder
167
167
  end
168
168
 
169
169
  it "properly raises error on intentional searching of parameters that are not required" do
@@ -181,9 +181,9 @@ describe HammerCLIForeman::Command do
181
181
  )
182
182
  )
183
183
  out, err = capture_io do
184
- com.run(['--location', 'loc']).wont_equal HammerCLI::EX_OK
184
+ _(com.run(['--location', 'loc'])).wont_equal HammerCLI::EX_OK
185
185
  end
186
- err.must_equal "Error: Could not find location, please set one of options --location, --location-title, --location-id.\n"
186
+ _(err).must_equal "Error: Could not find location, please set one of options --location, --location-title, --location-id.\n"
187
187
 
188
188
  end
189
189
 
@@ -205,7 +205,7 @@ describe HammerCLIForeman::Command do
205
205
  ResourceMocks.mock_action_call(:domains, :index, [])
206
206
 
207
207
  out, err = capture_io do
208
- com.run([]).must_equal HammerCLI::EX_OK
208
+ _(com.run([])).must_equal HammerCLI::EX_OK
209
209
  end
210
210
 
211
211
  end
@@ -213,7 +213,7 @@ describe HammerCLIForeman::Command do
213
213
  describe "build_options" do
214
214
  it "uses build parameters in the block" do
215
215
  HammerCLIForeman::Command.build_options do |o|
216
- o.class.must_equal HammerCLIForeman::BuildParams
216
+ _(o.class).must_equal HammerCLIForeman::BuildParams
217
217
  end
218
218
  end
219
219
  end
@@ -228,6 +228,6 @@ describe HammerCLIForeman::ListCommand do
228
228
  it 'formats enum values in search fields help' do
229
229
  search_field = { name: 'managed', values: [true, false] }
230
230
  expected_output = 'Values: true, false'
231
- OpenListCommand.new({}).search_field_help_value(search_field).must_equal(expected_output)
231
+ _(OpenListCommand.new({}).search_field_help_value(search_field)).must_equal(expected_output)
232
232
  end
233
233
  end
@@ -31,7 +31,7 @@ describe HammerCLIForeman::CommonParameter do
31
31
 
32
32
  context "SetCommand" do
33
33
  before do
34
- ResourceMocks.common_parameter_show
34
+ ResourceMocks.common_parameter_list
35
35
  end
36
36
 
37
37
  let(:cmd) { HammerCLIForeman::CommonParameter::SetCommand.new("", ctx) }
@@ -0,0 +1,87 @@
1
+ # frozen_string_literal: true
2
+
3
+ require File.join(File.dirname(__FILE__), 'test_helper')
4
+ require File.join(File.dirname(__FILE__), 'apipie_resource_mock')
5
+
6
+ require 'hammer_cli_foreman/compute_profile'
7
+
8
+ describe HammerCLIForeman::ComputeProfile do
9
+ include CommandTestHelper
10
+
11
+ context 'ListCommand' do
12
+ before :each do
13
+ ResourceMocks.compute_profiles
14
+ end
15
+
16
+ let(:cmd) { HammerCLIForeman::ComputeProfile::ListCommand.new('', ctx) }
17
+
18
+ context 'parameters' do
19
+ it_should_accept 'no arguments'
20
+ it_should_fail_with 'organization param', ['--organization-id=1']
21
+ it_should_fail_with 'location param', ['--location-id=1']
22
+ end
23
+
24
+ context 'output' do
25
+ let(:expected_record_count) { count_records(cmd.resource.call(:index)) }
26
+
27
+ it_should_print_n_records
28
+ it_should_print_column 'Id'
29
+ it_should_print_column 'Name'
30
+ end
31
+ end
32
+
33
+ context 'InfoCommand' do
34
+ let(:cmd) { HammerCLIForeman::ComputeProfile::InfoCommand.new('', ctx) }
35
+
36
+ context 'parameters' do
37
+ it_should_accept 'id', ['--id=1']
38
+ it_should_accept 'name', ['--name=test']
39
+ it_should_fail_with 'organization param', ['--organization-id=1']
40
+ it_should_fail_with 'location param', ['--location-id=1']
41
+ end
42
+
43
+ context 'output' do
44
+ with_params ['--id=1'] do
45
+ it_should_print_n_records 1
46
+ it_should_print_column 'Id'
47
+ it_should_print_column 'Name'
48
+ it_should_print_column 'Created at'
49
+ it_should_print_column 'Updated at'
50
+ it_should_print_column 'Compute attributes'
51
+ end
52
+ end
53
+ end
54
+
55
+ context 'CreateCommand' do
56
+ let(:cmd) { HammerCLIForeman::ComputeProfile::CreateCommand.new('', ctx) }
57
+
58
+ context 'parameters' do
59
+ it_should_accept 'name', ['--name=test']
60
+ it_should_fail_with 'organization param', ['--organization-id=1']
61
+ it_should_fail_with 'location param', ['--location-id=1']
62
+ end
63
+
64
+ end
65
+
66
+ context 'DeleteCommand' do
67
+ let(:cmd) { HammerCLIForeman::ComputeProfile::DeleteCommand.new('', ctx) }
68
+
69
+ context 'parameters' do
70
+ it_should_accept 'id', ['--id=1']
71
+ it_should_accept 'name', ['--name=test']
72
+ it_should_fail_with 'organization param', ['--organization-id=1']
73
+ it_should_fail_with 'location param', ['--location-id=1']
74
+ end
75
+ end
76
+
77
+ context 'UpdateCommand' do
78
+ let(:cmd) { HammerCLIForeman::ComputeProfile::UpdateCommand.new('', ctx) }
79
+
80
+ context 'parameters' do
81
+ it_should_accept 'id', ['--id=1']
82
+ it_should_accept 'name', ['--name=test']
83
+ it_should_fail_with 'organization param', ['--organization-id=1']
84
+ it_should_fail_with 'location param', ['--location-id=1']
85
+ end
86
+ end
87
+ end