epc 1.0.2 → 1.0.3

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 (152) hide show
  1. data/lib/epc.rb +71 -54
  2. data/lib/epc/command/archive_command.rb +12 -0
  3. data/lib/epc/command/attach_libraryset_command.rb +1 -2
  4. data/lib/epc/command/attach_runtime_command.rb +0 -1
  5. data/lib/epc/command/base_command.rb +52 -63
  6. data/lib/epc/command/config/delete_config_command.rb +57 -0
  7. data/lib/epc/command/{list_config_command.rb → config/list_configs_command.rb} +1 -1
  8. data/lib/epc/command/config/update_config_command.rb +56 -0
  9. data/lib/epc/command/create_command.rb +0 -1
  10. data/lib/epc/command/delete_command.rb +16 -0
  11. data/lib/epc/command/{delete_dependency_command.rb → dependency/delete_dependency_command.rb} +14 -16
  12. data/lib/epc/command/deploy_command.rb +1 -2
  13. data/lib/epc/command/deployment/list_deployments_command.rb +49 -0
  14. data/lib/epc/command/deployment/show_deployment_command.rb +61 -0
  15. data/lib/epc/command/{update_deploymentproject_command.rb → deployment/update_deployment_command.rb} +3 -3
  16. data/lib/epc/command/{list_stages_command.rb → deploymentstage/list_deploymentstages_command.rb} +1 -1
  17. data/lib/epc/command/group/delete_group_command.rb +25 -0
  18. data/lib/epc/command/{list_groups_command.rb → group/list_groups_command.rb} +1 -1
  19. data/lib/epc/command/{show_group_command.rb → group/show_group_command.rb} +2 -9
  20. data/lib/epc/command/{update_group_command.rb → group/update_group_command.rb} +3 -20
  21. data/lib/epc/command/library/create_library_command.rb +2 -5
  22. data/lib/epc/command/library/delete_library_command.rb +23 -0
  23. data/lib/epc/command/{list_libraries_command.rb → library/list_libraries_command.rb} +1 -1
  24. data/lib/epc/command/librarylanguage/delete_librarylanguage_command.rb +24 -0
  25. data/lib/epc/command/{list_librarylanguages_command.rb → librarylanguage/list_librarylanguages_command.rb} +1 -1
  26. data/lib/epc/command/{update_librarylanguage_command.rb → librarylanguage/update_librarylanguage_command.rb} +6 -10
  27. data/lib/epc/command/libraryset/create_libraryset_command.rb +1 -6
  28. data/lib/epc/command/{delete_libraryset_command.rb → libraryset/delete_libraryset_command.rb} +2 -18
  29. data/lib/epc/command/{list_librarysets_command.rb → libraryset/list_librarysets_command.rb} +1 -1
  30. data/lib/epc/command/{show_libraryset_command.rb → libraryset/show_libraryset_command.rb} +2 -17
  31. data/lib/epc/command/{update_libraryset_command.rb → libraryset/update_libraryset_command.rb} +4 -16
  32. data/lib/epc/command/list_command.rb +22 -0
  33. data/lib/epc/command/list_metrics_command.rb +25 -0
  34. data/lib/epc/command/list_objecttypes_command.rb +2 -4
  35. data/lib/epc/command/list_versions_command.rb +0 -1
  36. data/lib/epc/command/{list_objectroles_command.rb → objectrole/list_objectroles_command.rb} +3 -3
  37. data/lib/epc/command/objectrole/update_objectrole_command.rb +14 -0
  38. data/lib/epc/command/{list_rolepermissions_command.rb → permission/list_permissions_command.rb} +2 -2
  39. data/lib/epc/command/{list_permissiongroups_command.rb → permissiongroup/list_permissiongroups_command.rb} +1 -1
  40. data/lib/epc/command/plugin/create_plugin_command.rb +42 -0
  41. data/lib/epc/command/plugin/delete_plugin_command.rb +26 -0
  42. data/lib/epc/command/plugin/list_plugins_command.rb +19 -0
  43. data/lib/epc/command/plugin/show_plugin_command.rb +29 -0
  44. data/lib/epc/command/plugin/update_plugin_command.rb +53 -0
  45. data/lib/epc/command/{archive_project_command.rb → project/archive_project_command.rb} +4 -3
  46. data/lib/epc/command/{delete_project_command.rb → project/delete_project_command.rb} +11 -7
  47. data/lib/epc/command/{list_projects_command.rb → project/list_projects_command.rb} +8 -9
  48. data/lib/epc/command/{show_project_command.rb → project/show_project_command.rb} +64 -29
  49. data/lib/epc/command/{unarchive_project_command.rb → project/unarchive_project_command.rb} +5 -4
  50. data/lib/epc/command/{update_project_command.rb → project/update_project_command.rb} +11 -5
  51. data/lib/epc/command/{list_projecttypes_command.rb → projecttype/list_projecttypes_command.rb} +1 -1
  52. data/lib/epc/command/{show_projecttype_command.rb → projecttype/show_projecttype_command.rb} +4 -3
  53. data/lib/epc/command/pull_command.rb +33 -35
  54. data/lib/epc/command/{delete_role_command.rb → role/delete_role_command.rb} +3 -4
  55. data/lib/epc/command/{list_roles_command.rb → role/list_roles_command.rb} +4 -3
  56. data/lib/epc/command/{show_role_command.rb → role/show_role_command.rb} +18 -10
  57. data/lib/epc/command/role/update_role_command.rb +95 -0
  58. data/lib/epc/command/{list_runtimes_command.rb → runtime/list_runtimes_command.rb} +0 -0
  59. data/lib/epc/command/servicedefinition/create_servicedefinition_command.rb +23 -0
  60. data/lib/epc/command/{list_servicedefinitions_command.rb → servicedefinition/list_servicedefinitions_command.rb} +1 -0
  61. data/lib/epc/command/{list_service_types_command.rb → servicetype/list_servicetypes_command.rb} +0 -0
  62. data/lib/epc/command/serviceversion/delete_serviceversion_command.rb +24 -0
  63. data/lib/epc/command/{list_serviceversions_command.rb → serviceversion/list_serviceversions_command.rb} +1 -1
  64. data/lib/epc/command/show_command.rb +27 -0
  65. data/lib/epc/command/show_instances_command.rb +33 -0
  66. data/lib/epc/command/show_metrics_command.rb +55 -0
  67. data/lib/epc/command/{archive_solution_command.rb → solution/archive_solution_command.rb} +2 -1
  68. data/lib/epc/command/solution/create_solution_command.rb +0 -1
  69. data/lib/epc/command/{delete_solution_command.rb → solution/delete_solution_command.rb} +5 -10
  70. data/lib/epc/command/solution/list_solutions_command.rb +1 -1
  71. data/lib/epc/command/{show_solution_command.rb → solution/show_solution_command.rb} +12 -7
  72. data/lib/epc/command/{unarchive_solution_command.rb → solution/unarchive_solution_command.rb} +1 -1
  73. data/lib/epc/command/solution/update_solution_command.rb +2 -1
  74. data/lib/epc/command/unarchive_command.rb +12 -0
  75. data/lib/epc/command/update_command.rb +15 -0
  76. data/lib/epc/command/update_rolepermissions_command.rb +2 -2
  77. data/lib/epc/command/{delete_user_command.rb → user/delete_user_command.rb} +4 -12
  78. data/lib/epc/command/{list_users_command.rb → user/list_users_command.rb} +1 -1
  79. data/lib/epc/command/{show_user_command.rb → user/show_user_command.rb} +3 -17
  80. data/lib/epc/command/{update_user_command.rb → user/update_user_command.rb} +2 -4
  81. data/lib/epc/config.rb +4 -1
  82. data/lib/epc/help.rb +50 -35
  83. data/lib/epc/runner.rb +16 -5
  84. data/lib/epc/version.rb +1 -1
  85. data/lib/epc/vertical_bar.rb +40 -0
  86. data/test/command/create_library_command_test.rb +5 -2
  87. data/test/command/create_libraryset_command_test.rb +1 -1
  88. data/test/command/create_plugin_command_test.rb +44 -0
  89. data/test/command/create_servicedefinition_command_test.rb +43 -0
  90. data/test/command/delete_config_command_test.rb +0 -11
  91. data/test/command/delete_dependency_command_test.rb +3 -11
  92. data/test/command/delete_library_command_test.rb +2 -15
  93. data/test/command/delete_librarylanguage_command_test.rb +2 -24
  94. data/test/command/delete_libraryset_command_test.rb +2 -24
  95. data/test/command/delete_plugin_command_test.rb +32 -0
  96. data/test/command/delete_project_command_test.rb +0 -6
  97. data/test/command/delete_role_command_test.rb +1 -1
  98. data/test/command/delete_serviceversion_command_test.rb +0 -22
  99. data/test/command/delete_solution_command_test.rb +4 -4
  100. data/test/command/delete_user_command_test.rb +2 -24
  101. data/test/command/list_config_command_test.rb +3 -3
  102. data/test/command/list_deployments_command_test.rb +17 -20
  103. data/test/command/list_deploymentstages_command_test.rb +2 -2
  104. data/test/command/list_metrics_command_test.rb +40 -0
  105. data/test/command/{list_rolepermissions_command_test.rb → list_permissions_command_test.rb} +2 -2
  106. data/test/command/list_plugins_command_test.rb +27 -0
  107. data/test/command/list_projects_command_test.rb +3 -5
  108. data/test/command/list_roles_command_test.rb +2 -3
  109. data/test/command/pull_command_test.rb +13 -9
  110. data/test/command/show_group_command_test.rb +1 -23
  111. data/test/command/show_instances_command_test.rb +33 -0
  112. data/test/command/show_libraryset_command_test.rb +0 -11
  113. data/test/command/show_metrics_command_test.rb +51 -0
  114. data/test/command/show_plugin_command_test.rb +28 -0
  115. data/test/command/show_project_command_test.rb +1 -1
  116. data/test/command/show_projecttype_command_test.rb +0 -5
  117. data/test/command/show_role_command_test.rb +1 -1
  118. data/test/command/show_solution_command_test.rb +1 -1
  119. data/test/command/show_user_command_test.rb +2 -22
  120. data/test/command/update_config_command_test.rb +3 -9
  121. data/test/command/{update_deploymentproject_command_test.rb → update_deployment_command_test.rb} +6 -11
  122. data/test/command/update_group_command_test.rb +1 -20
  123. data/test/command/update_librarylanguage_command_test.rb +0 -15
  124. data/test/command/update_libraryset_command_test.rb +0 -13
  125. data/test/command/update_plugin_command_test.rb +41 -0
  126. data/test/command/update_project_command_test.rb +3 -3
  127. data/test/command/update_role_command_test.rb +2 -1
  128. data/test/command/update_solution_command_test.rb +3 -9
  129. data/test/command/update_user_command_test.rb +0 -6
  130. metadata +177 -165
  131. data/lib/epc/command/define_service_command.rb +0 -37
  132. data/lib/epc/command/delete_config_command.rb +0 -63
  133. data/lib/epc/command/delete_group_command.rb +0 -40
  134. data/lib/epc/command/delete_library_command.rb +0 -30
  135. data/lib/epc/command/delete_librarylanguage_command.rb +0 -40
  136. data/lib/epc/command/delete_serviceversion_command.rb +0 -52
  137. data/lib/epc/command/list_approvals_command.rb +0 -27
  138. data/lib/epc/command/list_attachedlibraries_command.rb +0 -42
  139. data/lib/epc/command/list_boundservices_command.rb +0 -40
  140. data/lib/epc/command/list_dependencies_command.rb +0 -43
  141. data/lib/epc/command/list_deployments_command.rb +0 -68
  142. data/lib/epc/command/list_solutions_command.rb +0 -25
  143. data/lib/epc/command/show_deployment_command.rb +0 -57
  144. data/lib/epc/command/update_config_command.rb +0 -62
  145. data/lib/epc/command/update_role_command.rb +0 -47
  146. data/lib/epc/command/update_solution_command.rb +0 -45
  147. data/test/command/define_service_command_test.rb +0 -55
  148. data/test/command/delete_group_command_test.rb +0 -56
  149. data/test/command/list_approvals_command_test.rb +0 -41
  150. data/test/command/list_boundservices_command_test.rb +0 -46
  151. data/test/command/list_dependencies_command_test.rb +0 -46
  152. data/test/command/update_rolepermissions_command_test.rb +0 -54
@@ -1,13 +1,13 @@
1
1
  require 'test_helper'
2
2
 
3
- class ListStagesCommandTest < Test::Unit::TestCase
3
+ class ListDeploymentstagesCommandTest < Test::Unit::TestCase
4
4
  should_require_login
5
5
 
6
6
  context "list solutions" do
7
7
  setup do
8
8
  @mock_client = mock("Client")
9
9
 
10
- @command = EPC::Command::ListStagesCommand.new(@mock_client)
10
+ @command = EPC::Command::ListDeploymentstagesCommand.new(@mock_client)
11
11
  end
12
12
 
13
13
  should "show exception message status is not 201" do
@@ -0,0 +1,40 @@
1
+ require 'test_helper'
2
+
3
+ class ListMetricsCommandTest < Test::Unit::TestCase
4
+ should_require_login
5
+
6
+
7
+ context "execution" do
8
+ setup do
9
+ @mock_client = mock("Client")
10
+ @command = EPC::Command::ListMetricsCommand.new(@mock_client)
11
+ end
12
+
13
+ should "fail if status is not 200(ok)" do
14
+ @mock_client.expects(:get).with(EPC::Config::METRICS_PATH).returns([500, {:message => "System exception encountered"}, {}])
15
+ @command.expects(:say).with("Request failed: [System exception encountered]")
16
+ assert_equal 500, @command.execute
17
+ end
18
+
19
+ should "show a message if no metrics are returned" do
20
+ @mock_client.expects(:get).with(EPC::Config::METRICS_PATH).returns([200, {}, {}])
21
+ @command.expects(:say).with("No metrics available.")
22
+ assert_equal 200, @command.execute
23
+ end
24
+
25
+ should "show a message if no metrics are returned for a given target" do
26
+ @command = EPC::Command::ListMetricsCommand.new(@mock_client, {target: 'jimmy'})
27
+ @mock_client.expects(:get).with("#{EPC::Config::METRICS_PATH}?target=jimmy").returns([200, {}, {}])
28
+ @command.expects(:say).with("No metrics available for target jimmy.")
29
+ assert_equal 200, @command.execute
30
+ end
31
+
32
+ should "list metrics" do
33
+ metrics = [{target: 'target', id: 'id', name: 'name', type: 'type', function: 'function'}]
34
+ @mock_client.expects(:get).with(EPC::Config::METRICS_PATH).returns([200, metrics, {}])
35
+ @command.expects(:say)
36
+ assert_equal 200, @command.execute
37
+ end
38
+ end
39
+
40
+ end
@@ -1,12 +1,12 @@
1
1
  require 'test_helper'
2
2
 
3
- class ListRolepermissionsCommandTest < Test::Unit::TestCase
3
+ class ListPermissionsCommandTest < Test::Unit::TestCase
4
4
  should_require_login
5
5
 
6
6
  context "execute" do
7
7
  setup do
8
8
  @mock_client = mock("Client")
9
- @command = EPC::Command::ListRolepermissionsCommand.new(@mock_client)
9
+ @command = EPC::Command::ListPermissionsCommand.new(@mock_client)
10
10
  end
11
11
 
12
12
  should "show a message if status is not 200" do
@@ -0,0 +1,27 @@
1
+ require 'test_helper'
2
+
3
+ class ListPluginsCommandTest < Test::Unit::TestCase
4
+ should_require_login
5
+
6
+ context "execute" do
7
+ setup do
8
+ @mock_client = mock("Client")
9
+ @command = EPC::Command::ListPluginsCommand.new(@mock_client)
10
+ end
11
+
12
+ should "list the plugins" do
13
+ @mock_client.expects(:get).with(EPC::Config::PLUGINS_PATH).returns([200, [{}], {}])
14
+ @command.expects(:say)
15
+ @command.execute("")
16
+ end
17
+
18
+ should "report reason for request failure" do
19
+ @mock_client.expects(:get).with(EPC::Config::PLUGINS_PATH).returns([500, {:message => "System Exception"}, {}])
20
+ @command.expects(:say).with("Request failed: [System Exception]")
21
+ @command.execute("")
22
+ end
23
+
24
+ end
25
+
26
+
27
+ end
@@ -11,11 +11,9 @@ class ListProjectsCommandTest < Test::Unit::TestCase
11
11
 
12
12
  should "fail if solution id can't be determined" do
13
13
  @command.expects(:infer_solution_context).returns(nil)
14
- @command.expects(:say).with("Solution could not be inferred")
15
- @command.expects(:say).with(EPC::Help::COMMAND_USAGES[:list_projects])
16
-
17
-
18
- assert_equal(@command.execute("FirstSolution"), 1)
14
+ assert_raise EPC::Error::InputError do
15
+ assert_equal(@command.execute, 1)
16
+ end
19
17
  end
20
18
  end
21
19
 
@@ -34,12 +34,11 @@ class ListRolesCommandTest < Test::Unit::TestCase
34
34
  assert_equal(@command.execute, 200)
35
35
  end
36
36
 
37
- should "retrieve roles for the user when --user is specified" do
38
- @command.options[:user] = 1
37
+ should "retrieve roles for the user" do
39
38
  @mock_client.expects(:get).with(EPC::Config::USERS_PATH + "/1?include=roles").
40
39
  returns([200, {:roles => [{:id => 1, :name => "SuperAdmin"}, {:id => 2, :name => "Admin"}]}, {}])
41
40
  @command.expects(:say)
42
- assert_equal(@command.execute, 200)
41
+ assert_equal(@command.execute("User:1"), 200)
43
42
  end
44
43
  end
45
44
 
@@ -117,8 +117,10 @@ class PullCommandTest < Test::Unit::TestCase
117
117
  @mock_client.expects(:put).with("/api/v1/pulls/1/sign").
118
118
  returns([200, { :signed_url => "http://download/from/here" }, {}])
119
119
 
120
- status, code, url = command.send(:sign_pull, 1)
121
-
120
+ status, response, headers = command.send(:sign_pull, 1)
121
+ code = response[:error_code]
122
+ url = response[:signed_url]
123
+
122
124
  assert_equal(200, status)
123
125
  assert_nil(code)
124
126
  assert_equal("http://download/from/here", url)
@@ -130,8 +132,10 @@ class PullCommandTest < Test::Unit::TestCase
130
132
  @mock_client.expects(:put).with("/api/v1/pulls/1/sign").
131
133
  returns([404, { :message => "not found", :error_code => 801 }, {}])
132
134
 
133
- status, code, url = command.send(:sign_pull, 1)
134
-
135
+ status, response, headers = command.send(:sign_pull, 1)
136
+ code = response[:error_code]
137
+ url = response[:signed_url]
138
+
135
139
  assert_equal(404, status)
136
140
  assert_equal(801, code)
137
141
  assert_nil(url)
@@ -173,15 +177,15 @@ class PullCommandTest < Test::Unit::TestCase
173
177
  @command = EPC::Command::PullCommand.new(@mock_client)
174
178
  end
175
179
 
176
- should "poll untill if receives and url" do
177
- @command.expects(:sign_pull).returns([200, 1, "url_to_zip"])
178
- assert_equal(@command.send(:poll_for_pull_url, 1), [true, "url_to_zip"])
180
+ should "poll until if receives and url" do
181
+ @command.expects(:sign_pull).returns([200, {:signed_url => "url_to_zip"}, nil])
182
+ assert_equal(@command.send(:poll_for_pull_url, 1), [true, "url_to_zip", {:signed_url => "url_to_zip"}])
179
183
  end
180
184
 
181
185
  should "notify when there's an error in polling" do
182
- @command.expects(:sign_pull).returns([500, 1, nil])
186
+ @command.expects(:sign_pull).returns([500, {}, nil])
183
187
  @command.expects(:say).with("Poller failed to get the pull URL. Aborting.")
184
- assert_equal(@command.send(:poll_for_pull_url, 1), [false, nil])
188
+ assert_equal(@command.send(:poll_for_pull_url, 1), [false, nil, nil])
185
189
  end
186
190
 
187
191
  end
@@ -9,12 +9,6 @@ class ShowGroupCommandTest < Test::Unit::TestCase
9
9
  @command = EPC::Command::ShowGroupCommand.new(@mock_client)
10
10
  end
11
11
 
12
- should "fail if no group is specified" do
13
- assert_raise EPC::Error::FatalError do
14
- assert_equal(@command.execute, 1)
15
- end
16
- end
17
-
18
12
  should "fail if status is not 200" do
19
13
  @mock_client.expects(:get).with(EPC::Config::GROUPS_PATH + "/1?include=users").
20
14
  returns([404, {:message => "Not Found"}, {}])
@@ -22,24 +16,8 @@ class ShowGroupCommandTest < Test::Unit::TestCase
22
16
  assert_equal(@command.execute(1), 1)
23
17
  end
24
18
 
25
- should "fail if group_id can't be determined" do
26
- @command.expects(:get_resource_id).with(EPC::Config::GROUPS_PATH, :name, "admins").returns(nil)
27
- assert_raise EPC::Error::FatalError do
28
- assert_equal(@command.execute("admins"), 1)
29
- end
30
- end
31
-
32
- should "show a group specified by id" do
33
- @mock_client.expects(:get).with(EPC::Config::GROUPS_PATH + "/1?include=users").
34
- returns([200, {}, {}])
35
- @command.expects(:say).at_least_once
36
-
37
- assert_equal(@command.execute(1), 200)
38
- end
39
-
40
-
41
19
  should "show a group specified by name" do
42
- @command.expects(:get_resource_id).with(EPC::Config::GROUPS_PATH, :name, "admins").returns(1)
20
+ @command.expects(:retrieve_identifier_for).returns(1)
43
21
  @mock_client.expects(:get).with(EPC::Config::GROUPS_PATH + "/1?include=users").
44
22
  returns([200, {:id => 1, :name => "Grp1", :users => [{:id => 1, :name => "Group Leader", :email => "group_leader@epaas.com"}]}, {}])
45
23
  @command.expects(:say).at_least_once
@@ -0,0 +1,33 @@
1
+ require 'test_helper'
2
+
3
+ class ShowInstancesCommandTest < Test::Unit::TestCase
4
+ should_require_login
5
+
6
+ context "execution" do
7
+ setup do
8
+ @mock_client = mock("Client")
9
+ @id = "123"
10
+ @url = "#{EPC::Config::INSTANCES_PATH}/#{CGI.escape(@id)}/instances"
11
+ @command = EPC::Command::ShowInstancesCommand.new(@mock_client)
12
+ end
13
+
14
+ should "fail if no id is specified" do
15
+ @command.expects(:say).with("You must specify the deployed project id.")
16
+ @command.expects(:say).with(EPC::Help::COMMAND_USAGES[:show_instances])
17
+ assert_equal @command.execute, 1
18
+ end
19
+
20
+ should "fail if status is not 200 (ok)" do
21
+ @mock_client.expects(:get).with(@url).returns([500, {:message => "System exception encountered"}, {}])
22
+ @command.expects(:say).with("Request failed: [System exception encountered]")
23
+ assert_equal 500, @command.execute("", "", @id)
24
+ end
25
+
26
+ should "show deployed project instances" do
27
+ @mock_client.expects(:get).with(@url).returns([200, {instance_id: { active: true }}, {}])
28
+ @command.expects(:say)
29
+ assert_equal 200, @command.execute("", "", @id)
30
+ end
31
+ end
32
+
33
+ end
@@ -9,17 +9,6 @@ class ShowLibrarysetCommandTest < Test::Unit::TestCase
9
9
  @command = EPC::Command::ShowLibrarysetCommand.new(@mock_client)
10
10
  end
11
11
 
12
- should "fail if library set is not specified" do
13
- @command.expects(:say).with("You must specify a library-set")
14
- @command.expects(:say).with(EPC::Help::COMMAND_USAGES[:show_libraryset])
15
- assert_equal(@command.execute, 1)
16
- end
17
-
18
- should "fail if library set id can't be determined" do
19
- @command.expects(:get_resource_id).with(EPC::Config::LIBRARY_SETS_PATH, :name, "lib-set").returns(nil)
20
- @command.expects(:say).with("Library set could not be determined")
21
- assert_equal(@command.execute("lib-set"), 1)
22
- end
23
12
 
24
13
  should "show error if status is not 201" do
25
14
  @mock_client.expects(:get).with(EPC::Config::LIBRARY_SETS_PATH+"/1").
@@ -0,0 +1,51 @@
1
+ require 'test_helper'
2
+
3
+ class ShowMetricsCommandTest < Test::Unit::TestCase
4
+ should_require_login
5
+
6
+ context "execution" do
7
+ setup do
8
+ @mock_client = mock("Client")
9
+ @id = "target"
10
+ @metrics = "mem-max"
11
+ @url = "#{EPC::Config::MONITORED_PATH}/#{CGI.escape(@id)}/metrics/#{CGI.escape(@metrics)}"
12
+ @redirect_url = "http://localhost/#{CGI.escape(@id)}/metrics/#{CGI.escape(@metrics)}"
13
+ @command = EPC::Command::ShowMetricsCommand.new(@mock_client, {graph: true})
14
+ end
15
+
16
+ should "fail if no target is specified" do
17
+ @command.expects(:say).with("You must specify the target object id.")
18
+ @command.expects(:say).with(EPC::Help::COMMAND_USAGES[:show_metrics])
19
+ assert_equal(@command.execute, 1)
20
+ end
21
+
22
+ should "fail if no metrics are specified" do
23
+ @command = EPC::Command::ShowMetricsCommand.new(@mock_client)
24
+ @command.expects(:say).with("You must specify the metrics to display.")
25
+ @command.expects(:say).with(EPC::Help::COMMAND_USAGES[:show_metrics])
26
+ assert_equal(@command.execute("", "", @id), 1)
27
+ end
28
+
29
+ should "fail if status is not 302 (ok)" do
30
+ @mock_client.expects(:get).with(@url).returns([500, {:message => "System exception encountered"}, {}])
31
+ @command.expects(:say).with("Request failed: [System exception encountered]")
32
+ assert_equal 500, @command.execute("", "", @id, @metrics)
33
+ end
34
+
35
+ should "fail if second status is not 200 (ok)" do
36
+ @mock_client.expects(:get).with(@url).returns([302, {}, {uri: @redirect_url}])
37
+ EPC::Client::HttpClient.any_instance.expects(:get).with(@redirect_url).returns([500, {:message => "System exception encountered"}, {}])
38
+ @command.expects(:say).with("Request failed: [System exception encountered]")
39
+ assert_equal 500, @command.execute("", "", @id, @metrics)
40
+ end
41
+
42
+ should "show metrics" do
43
+ @mock_client.expects(:get).with(@url).returns([302, {}, {uri: @redirect_url}])
44
+ json = '{"id":{"metric":{"start":0,"stop":2,"step":3,"data":[1,2,3]}}}'
45
+ EPC::Client::HttpClient.any_instance.expects(:get).with(@redirect_url).returns([200, json, {}])
46
+ @command.expects(:say).times(3)
47
+ assert_equal 200, @command.execute("", "", @id, @metrics)
48
+ end
49
+ end
50
+
51
+ end
@@ -0,0 +1,28 @@
1
+ require 'test_helper'
2
+
3
+ class ShowPluginCommandTest < Test::Unit::TestCase
4
+ should_require_login
5
+
6
+ context "execute" do
7
+ setup do
8
+ @mock_client = mock("Client")
9
+ @command = EPC::Command::ShowPluginCommand.new(@mock_client)
10
+ end
11
+
12
+ should "show the plugin" do
13
+ @command.expects(:retrieve_identifier_for).returns(1)
14
+ @mock_client.expects(:get).with(EPC::Config::PLUGINS_PATH + "/1").returns([200, {:id => 1, :name => "plugin_name", :plugin_version => "1", :group => "plugin_groups", :inherited => true, :extensions => false, :executions => "exec_string", :configuration => "config_string"}, {}])
15
+ @command.expects(:say).at_least_once
16
+ @command.execute("plugin_name")
17
+ end
18
+
19
+ should "report reason for request failure" do
20
+ @command.expects(:retrieve_identifier_for).returns(1)
21
+ @mock_client.expects(:get).with(EPC::Config::PLUGINS_PATH + "/1").returns([500, {:message => "System Exception"}, {}])
22
+ @command.expects(:say).with("Request failed: [System Exception]")
23
+ @command.execute("plugin_name")
24
+ end
25
+ end
26
+
27
+
28
+ end
@@ -33,7 +33,7 @@ class ShowProjectCommandTest < Test::Unit::TestCase
33
33
 
34
34
  should "show details about the requested project" do
35
35
  time = Time.now.to_s
36
- @mock_client.expects(:get).with(EPC::Config::PROJECTS_PATH+"/1?include=dependencies,roles,config_values").
36
+ @mock_client.expects(:get).with(EPC::Config::PROJECTS_PATH+"/1?include=dependencies,roles,config_values,service_versions,libraries").
37
37
  returns(
38
38
  [
39
39
  200,
@@ -12,11 +12,6 @@ class ShowProjecttypeCommandTest < Test::Unit::TestCase
12
12
  @command = EPC::Command::ShowProjecttypeCommand.new(@mock_client)
13
13
  end
14
14
 
15
- should "fail if project type can't be determined" do
16
- assert_raise EPC::Error::FatalError do
17
- assert_equal(@command.execute, 1)
18
- end
19
- end
20
15
  end
21
16
 
22
17
  context "retrieval " do
@@ -26,7 +26,7 @@ class ShowRoleCommandTest < Test::Unit::TestCase
26
26
 
27
27
 
28
28
  should "show a role specified by name" do
29
- @command.expects(:retrieve_system_role_identifier).returns(1)
29
+ @command.expects(:retrieve_identifier_for).returns(1)
30
30
  @mock_client.expects(:get).with(EPC::Config::ROLES_PATH + "/1?include=users,user_groups,grants").
31
31
  returns([200, {:id => 1, :name => "admin", :users => [{:id => 1, :name => "Group Leader", :email => "group_leader@epaas.com"}], :user_groups => [{:id => 1, :name => "The Leaders"}]}, {}])
32
32
  @command.expects(:say).at_least_once
@@ -33,7 +33,7 @@ class ShowSolutionCommandTest < Test::Unit::TestCase
33
33
  assert_equal(@command.execute, 404)
34
34
  end
35
35
 
36
- should "show details about the request solution" do
36
+ should "show details about the requested solution" do
37
37
  time1 = (Time.now - 5).to_s
38
38
  time2 = Time.now.to_s
39
39
  @mock_client.expects(:get).with(EPC::Config::SOLUTIONS_PATH+"/1?include=config_values,projects,deployments,deployment_configs").
@@ -9,11 +9,6 @@ class ShowUserCommandTest < Test::Unit::TestCase
9
9
  @command = EPC::Command::ShowUserCommand.new(@mock_client)
10
10
  end
11
11
 
12
- should "fail if no user is specified" do
13
- @command.expects(:say).with("You need to specify a user id/email")
14
- @command.expects(:say).with(EPC::Help::COMMAND_USAGES[:show_user])
15
- assert_equal(@command.execute, 1)
16
- end
17
12
 
18
13
  should "fail if status is not 200" do
19
14
  @mock_client.expects(:get).with(EPC::Config::USERS_PATH + "/1?include=user_groups").
@@ -22,14 +17,8 @@ class ShowUserCommandTest < Test::Unit::TestCase
22
17
  assert_equal(@command.execute(1), 404)
23
18
  end
24
19
 
25
- should "fail if user_id can't be determined" do
26
- @command.expects(:get_resource_id).with(EPC::Config::USERS_PATH, :email, "admin").returns(nil)
27
- @command.expects(:say).with("User could not be found")
28
-
29
- assert_equal(@command.execute("admin"), 1)
30
- end
31
-
32
- should "show a user specified by id" do
20
+ should "show a user" do
21
+ @command.expects(:retrieve_identifier_for).returns(1)
33
22
  @mock_client.expects(:get).with(EPC::Config::USERS_PATH + "/1?include=user_groups").
34
23
  returns([200, {:id => 1, :name => "admin", :user_groups => [{:id => 1, :name => "Administrators"}]}, {}])
35
24
  @command.expects(:say).at_least_once
@@ -37,14 +26,5 @@ class ShowUserCommandTest < Test::Unit::TestCase
37
26
  assert_equal(@command.execute(1), 200)
38
27
  end
39
28
 
40
-
41
- should "show a user specified by name" do
42
- @command.expects(:get_resource_id).with(EPC::Config::USERS_PATH, :email, "admin").returns(1)
43
- @mock_client.expects(:get).with(EPC::Config::USERS_PATH + "/1?include=user_groups").
44
- returns([200, {}, {}])
45
- @command.expects(:say)
46
-
47
- assert_equal(@command.execute("admin"), 200)
48
- end
49
29
  end
50
30
  end
@@ -9,12 +9,6 @@ class UpdateConfigCommandTest < Test::Unit::TestCase
9
9
  @command = EPC::Command::UpdateConfigCommand.new(@mock_client)
10
10
  end
11
11
 
12
- should "fail if no key specified" do
13
- @command.expects(:say).with("You have to specify a key and its value.")
14
- assert_equal(@command.execute, 1)
15
- end
16
-
17
-
18
12
  should "fail if status code is not 200" do
19
13
  @command.expects(:extract_configuration_level).returns(["Project", 1])
20
14
 
@@ -28,7 +22,7 @@ class UpdateConfigCommandTest < Test::Unit::TestCase
28
22
  ).returns([400, {:message => "Not Found"}, {}])
29
23
 
30
24
  @command.expects("say").with("Request failed with message [Not Found]")
31
- assert_equal(@command.execute("key1=value1"), 400)
25
+ assert_equal(@command.execute("key1", "", "value1"), 400)
32
26
 
33
27
  end
34
28
 
@@ -41,7 +35,7 @@ class UpdateConfigCommandTest < Test::Unit::TestCase
41
35
  {}])
42
36
 
43
37
  @command.expects(:say).with("Key does not exist.")
44
- assert_equal(@command.execute("key1=value1"), 1)
38
+ assert_equal(@command.execute("key1", "", "value1"), 1)
45
39
 
46
40
  end
47
41
  end
@@ -67,7 +61,7 @@ class UpdateConfigCommandTest < Test::Unit::TestCase
67
61
  ).returns([200, {:id => 1}, {}])
68
62
 
69
63
  @command.expects(:say).with("key1 saved.")
70
- assert_equal(@command.execute("key1=value1"), 200)
64
+ assert_equal(@command.execute("key1", "", "value1"), 200)
71
65
  end
72
66
  end
73
67