epc 1.0.3 → 1.0.4

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 (196) hide show
  1. data/lib/epc.rb +25 -5
  2. data/lib/epc/client/json_client.rb +4 -4
  3. data/lib/epc/command/archive_command.rb +7 -6
  4. data/lib/epc/command/attachto_command.rb +13 -0
  5. data/lib/epc/command/base_command.rb +120 -29
  6. data/lib/epc/command/config/create_config_command.rb +7 -11
  7. data/lib/epc/command/config/delete_config_command.rb +5 -5
  8. data/lib/epc/command/config/list_configs_command.rb +5 -5
  9. data/lib/epc/command/config/update_config_command.rb +11 -10
  10. data/lib/epc/command/copy_command.rb +14 -0
  11. data/lib/epc/command/create_command.rb +9 -5
  12. data/lib/epc/command/delete_command.rb +9 -9
  13. data/lib/epc/command/{copy_deployment_command.rb → deployment/copy_deployment_command.rb} +6 -5
  14. data/lib/epc/command/deployment/create_deployment_command.rb +15 -15
  15. data/lib/epc/command/deployment/list_deployments_command.rb +2 -4
  16. data/lib/epc/command/deployment/show_deployment_command.rb +5 -7
  17. data/lib/epc/command/deployment/submit_deployment_command.rb +15 -0
  18. data/lib/epc/command/deployment/update_deployment_command.rb +5 -14
  19. data/lib/epc/command/deployment/vote_deployment_command.rb +23 -0
  20. data/lib/epc/command/deploymentstage/list_deploymentstages_command.rb +1 -1
  21. data/lib/epc/command/detachfrom_command.rb +13 -0
  22. data/lib/epc/command/group/create_group_command.rb +3 -3
  23. data/lib/epc/command/group/delete_group_command.rb +4 -5
  24. data/lib/epc/command/group/show_group_command.rb +2 -3
  25. data/lib/epc/command/group/update_group_command.rb +9 -7
  26. data/lib/epc/command/library/create_library_command.rb +1 -2
  27. data/lib/epc/command/library/delete_library_command.rb +4 -5
  28. data/lib/epc/command/library/list_libraries_command.rb +1 -1
  29. data/lib/epc/command/librarylanguage/create_librarylanguage_command.rb +1 -1
  30. data/lib/epc/command/librarylanguage/delete_librarylanguage_command.rb +3 -5
  31. data/lib/epc/command/librarylanguage/list_librarylanguages_command.rb +1 -1
  32. data/lib/epc/command/librarylanguage/update_librarylanguage_command.rb +4 -5
  33. data/lib/epc/command/libraryset/create_libraryset_command.rb +5 -4
  34. data/lib/epc/command/libraryset/delete_libraryset_command.rb +4 -6
  35. data/lib/epc/command/libraryset/list_librarysets_command.rb +2 -2
  36. data/lib/epc/command/libraryset/show_libraryset_command.rb +3 -3
  37. data/lib/epc/command/libraryset/update_libraryset_command.rb +4 -3
  38. data/lib/epc/command/list_command.rb +10 -14
  39. data/lib/epc/command/list_objecttypes_command.rb +1 -1
  40. data/lib/epc/command/objectrole/create_objectrole_command.rb +4 -5
  41. data/lib/epc/command/objectrole/list_objectroles_command.rb +3 -8
  42. data/lib/epc/command/objectrole/update_objectrole_command.rb +3 -1
  43. data/lib/epc/command/permission/list_permissions_command.rb +1 -1
  44. data/lib/epc/command/permissiongroup/list_permissiongroups_command.rb +1 -1
  45. data/lib/epc/command/plugin/create_plugin_command.rb +1 -2
  46. data/lib/epc/command/plugin/delete_plugin_command.rb +4 -6
  47. data/lib/epc/command/plugin/list_plugins_command.rb +1 -1
  48. data/lib/epc/command/plugin/show_plugin_command.rb +2 -5
  49. data/lib/epc/command/plugin/update_plugin_command.rb +2 -6
  50. data/lib/epc/command/project/archive_project_command.rb +3 -12
  51. data/lib/epc/command/project/attachto_project_command.rb +133 -0
  52. data/lib/epc/command/project/create_project_command.rb +6 -6
  53. data/lib/epc/command/project/delete_project_command.rb +3 -24
  54. data/lib/epc/command/project/detachfrom_project_command.rb +66 -0
  55. data/lib/epc/command/project/list_projects_command.rb +12 -7
  56. data/lib/epc/command/project/show_project_command.rb +26 -25
  57. data/lib/epc/command/project/show_project_snapshot_command.rb +41 -0
  58. data/lib/epc/command/project/unarchive_project_command.rb +3 -10
  59. data/lib/epc/command/project/update_project_command.rb +5 -18
  60. data/lib/epc/command/projecttype/create_projecttype_command.rb +37 -0
  61. data/lib/epc/command/projecttype/delete_projecttype_command.rb +24 -0
  62. data/lib/epc/command/projecttype/list_projecttypes_command.rb +1 -1
  63. data/lib/epc/command/projecttype/show_projecttype_command.rb +2 -4
  64. data/lib/epc/command/projecttype/update_projecttype_command.rb +61 -0
  65. data/lib/epc/command/push_command.rb +14 -8
  66. data/lib/epc/command/role/create_role_command.rb +26 -3
  67. data/lib/epc/command/role/delete_role_command.rb +3 -5
  68. data/lib/epc/command/role/list_roles_command.rb +7 -3
  69. data/lib/epc/command/role/show_role_command.rb +8 -5
  70. data/lib/epc/command/role/update_role_command.rb +14 -66
  71. data/lib/epc/command/runtime/create_runtime_command.rb +34 -0
  72. data/lib/epc/command/runtime/delete_runtime_command.rb +24 -0
  73. data/lib/epc/command/runtime/list_runtimes_command.rb +2 -2
  74. data/lib/epc/command/runtime/update_runtime_command.rb +49 -0
  75. data/lib/epc/command/runtimetype/list_runtimetypes_command.rb +17 -0
  76. data/lib/epc/command/servicedefinition/create_servicedefinition_command.rb +5 -6
  77. data/lib/epc/command/servicedefinition/delete_servicedefinition_command.rb +18 -0
  78. data/lib/epc/command/servicedefinition/list_servicedefinitions_command.rb +2 -2
  79. data/lib/epc/command/servicetype/list_servicetypes_command.rb +1 -1
  80. data/lib/epc/command/serviceversion/create_serviceversion_command.rb +8 -12
  81. data/lib/epc/command/serviceversion/delete_serviceversion_command.rb +3 -5
  82. data/lib/epc/command/serviceversion/list_serviceversions_command.rb +8 -1
  83. data/lib/epc/command/show_command.rb +8 -9
  84. data/lib/epc/command/show_metrics_command.rb +3 -3
  85. data/lib/epc/command/solution/archive_solution_command.rb +3 -10
  86. data/lib/epc/command/solution/create_solution_command.rb +2 -2
  87. data/lib/epc/command/solution/delete_solution_command.rb +3 -7
  88. data/lib/epc/command/solution/list_solutions_command.rb +11 -3
  89. data/lib/epc/command/solution/show_solution_command.rb +4 -6
  90. data/lib/epc/command/solution/unarchive_solution_command.rb +3 -8
  91. data/lib/epc/command/solution/update_solution_command.rb +4 -6
  92. data/lib/epc/command/submit_command.rb +16 -0
  93. data/lib/epc/command/unarchive_command.rb +7 -6
  94. data/lib/epc/command/update_command.rb +9 -8
  95. data/lib/epc/command/user/create_user_command.rb +2 -3
  96. data/lib/epc/command/user/delete_user_command.rb +3 -5
  97. data/lib/epc/command/user/list_users_command.rb +1 -1
  98. data/lib/epc/command/user/show_user_command.rb +2 -4
  99. data/lib/epc/command/user/update_user_command.rb +3 -14
  100. data/lib/epc/command/userproperty/list_user_properties_command.rb +23 -0
  101. data/lib/epc/command/vote_command.rb +16 -0
  102. data/lib/epc/config.rb +7 -1
  103. data/lib/epc/help.rb +51 -48
  104. data/lib/epc/modules/config.rb +39 -0
  105. data/lib/epc/modules/role.rb +133 -0
  106. data/lib/epc/runner.rb +23 -12
  107. data/lib/epc/version.rb +1 -1
  108. data/test/command/archive_project_command_test.rb +2 -13
  109. data/test/command/archive_solution_command_test.rb +4 -14
  110. data/test/command/copy_deployment_command_test.rb +4 -8
  111. data/test/command/create_config_command_test.rb +23 -23
  112. data/test/command/create_deployment_command_test.rb +33 -32
  113. data/test/command/create_group_command_test.rb +2 -2
  114. data/test/command/create_library_command_test.rb +6 -6
  115. data/test/command/create_librarylanguage_command_test.rb +3 -3
  116. data/test/command/create_libraryset_command_test.rb +6 -26
  117. data/test/command/create_objectrole_command_test.rb +4 -13
  118. data/test/command/create_project_command_test.rb +27 -13
  119. data/test/command/create_role_command_test.rb +3 -2
  120. data/test/command/create_runtime_command_test.rb +37 -0
  121. data/test/command/create_servicedefinition_command_test.rb +4 -17
  122. data/test/command/create_serviceversion_command_test.rb +8 -22
  123. data/test/command/create_solution_command_test.rb +5 -5
  124. data/test/command/create_user_command_test.rb +4 -4
  125. data/test/command/delete_config_command_test.rb +8 -15
  126. data/test/command/delete_library_command_test.rb +3 -4
  127. data/test/command/delete_librarylanguage_command_test.rb +3 -4
  128. data/test/command/delete_libraryset_command_test.rb +3 -4
  129. data/test/command/delete_plugin_command_test.rb +3 -4
  130. data/test/command/delete_project_command_test.rb +2 -10
  131. data/test/command/delete_projecttype_command_test.rb +31 -0
  132. data/test/command/delete_role_command_test.rb +5 -14
  133. data/test/command/delete_runtime_command_test.rb +31 -0
  134. data/test/command/delete_servicedefinition_command_test.rb +31 -0
  135. data/test/command/delete_serviceversion_command_test.rb +3 -2
  136. data/test/command/delete_solution_command_test.rb +3 -16
  137. data/test/command/delete_user_command_test.rb +3 -3
  138. data/test/command/list_config_command_test.rb +1 -0
  139. data/test/command/list_deployments_command_test.rb +11 -41
  140. data/test/command/list_objectroles_command_test.rb +4 -14
  141. data/test/command/list_projects_command_test.rb +0 -14
  142. data/test/command/list_roles_command_test.rb +3 -1
  143. data/test/command/list_runtimes_command_test.rb +2 -3
  144. data/test/command/list_runtimetypes_command_test.rb +29 -0
  145. data/test/command/list_userproperties_command_test.rb +33 -0
  146. data/test/command/push_command_test.rb +9 -1
  147. data/test/command/show_deployment_command_test.rb +36 -0
  148. data/test/command/show_group_command_test.rb +2 -1
  149. data/test/command/show_libraryset_command_test.rb +5 -3
  150. data/test/command/show_metrics_command_test.rb +4 -4
  151. data/test/command/show_plugin_command_test.rb +4 -4
  152. data/test/command/show_project_command_test.rb +5 -17
  153. data/test/command/show_project_snapshot_test.rb +33 -0
  154. data/test/command/show_projecttype_command_test.rb +5 -11
  155. data/test/command/show_role_command_test.rb +5 -12
  156. data/test/command/show_solution_command_test.rb +2 -15
  157. data/test/command/show_user_command_test.rb +4 -3
  158. data/test/command/submit_deployment_command_test.rb +4 -11
  159. data/test/command/unarchive_project_command_test.rb +2 -14
  160. data/test/command/unarchive_solution_command_test.rb +6 -16
  161. data/test/command/update_config_command_test.rb +14 -3
  162. data/test/command/update_deployment_command_test.rb +12 -26
  163. data/test/command/update_group_command_test.rb +2 -10
  164. data/test/command/update_librarylanguage_command_test.rb +5 -3
  165. data/test/command/update_libraryset_command_test.rb +4 -2
  166. data/test/command/update_plugin_command_test.rb +5 -4
  167. data/test/command/update_project_command_test.rb +6 -20
  168. data/test/command/update_role_command_test.rb +11 -8
  169. data/test/command/update_solution_command_test.rb +6 -12
  170. data/test/command/update_user_command_test.rb +3 -19
  171. data/test/command/vote_deployment_command_test.rb +2 -6
  172. metadata +66 -63
  173. data/lib/epc/command/attach_library_command.rb +0 -82
  174. data/lib/epc/command/attach_libraryset_command.rb +0 -31
  175. data/lib/epc/command/attach_runtime_command.rb +0 -26
  176. data/lib/epc/command/bind_service_command.rb +0 -35
  177. data/lib/epc/command/create_dependency_command.rb +0 -43
  178. data/lib/epc/command/dependency/delete_dependency_command.rb +0 -38
  179. data/lib/epc/command/detach_library_command.rb +0 -35
  180. data/lib/epc/command/detach_libraryset_command.rb +0 -8
  181. data/lib/epc/command/list_versions_command.rb +0 -38
  182. data/lib/epc/command/submit_deployment_command.rb +0 -19
  183. data/lib/epc/command/unbind_service_command.rb +0 -42
  184. data/lib/epc/command/undefine_service_command.rb +0 -33
  185. data/lib/epc/command/update_rolepermissions_command.rb +0 -83
  186. data/lib/epc/command/vote_deployment_command.rb +0 -29
  187. data/test/command/attach_library_command_test.rb +0 -124
  188. data/test/command/attach_libraryset_command_test.rb +0 -49
  189. data/test/command/attach_runtime_command_test.rb +0 -44
  190. data/test/command/bind_service_command_test.rb +0 -46
  191. data/test/command/create_dependency_command_test.rb +0 -55
  192. data/test/command/create_plugin_command_test.rb +0 -44
  193. data/test/command/delete_dependency_command_test.rb +0 -42
  194. data/test/command/detach_library_command_test.rb +0 -53
  195. data/test/command/unbind_service_command_test.rb +0 -48
  196. data/test/command/undefine_service_command_test.rb +0 -49
@@ -19,7 +19,7 @@ class CreateGroupCommandTest < Test::Unit::TestCase
19
19
  @mock_client.expects(:post).with(EPC::Config::GROUPS_PATH, {:name => "group"}).
20
20
  returns([500, {:message => "System exception"}, {}])
21
21
  @command.expects(:say).with("Failed to create [group] group: [System exception]")
22
- assert_equal(@command.execute("", "group"), 500)
22
+ assert_equal(@command.execute(["group"]), 500)
23
23
  end
24
24
 
25
25
  should "request the creation of the group" do
@@ -28,7 +28,7 @@ class CreateGroupCommandTest < Test::Unit::TestCase
28
28
  returns([201, {}, {}])
29
29
  @command.expects(:say).with("Group [admins] created")
30
30
 
31
- assert_equal(@command.execute("", "admins"), 201)
31
+ assert_equal(@command.execute(["admins"]), 201)
32
32
  end
33
33
  end
34
34
  end
@@ -11,7 +11,7 @@ class CreateLibraryCommandTest < Test::Unit::TestCase
11
11
 
12
12
  should "fail if arguments are not correct" do
13
13
  assert_raise EPC::Error::FatalError do
14
- assert_equal(@command.execute("", "lib1", "ruby"), 1)
14
+ assert_equal(@command.execute(["lib1", "ruby"]), 1)
15
15
  end
16
16
  end
17
17
 
@@ -20,13 +20,13 @@ class CreateLibraryCommandTest < Test::Unit::TestCase
20
20
  @mock_client.expects(:post).returns([201, {}, {}])
21
21
  @command.expects(:say)
22
22
 
23
- assert_equal(@command.execute("", "lib1", "ruby", "1"), 201)
23
+ assert_equal(@command.execute(["lib1", "ruby", "1"]), 201)
24
24
  end
25
25
 
26
26
  should "fail if it can't determine the language id" do
27
27
  @command.expects(:retrieve_identifier_for).returns(nil)
28
28
  assert_raise EPC::Error::InputError do
29
- assert_equal(@command.execute("", "lib1", "ruby", "1"), 1)
29
+ assert_equal(@command.execute(["lib1", "ruby", "1"]), 1)
30
30
  end
31
31
 
32
32
  end
@@ -36,7 +36,7 @@ class CreateLibraryCommandTest < Test::Unit::TestCase
36
36
  @mock_client.expects(:post).returns([404, {:message => "Not Found"}, {}])
37
37
  @command.expects(:say).with("Request failed: [Not Found]")
38
38
 
39
- assert_equal(@command.execute("", "lib1", 1, "0.2", "my_grp"), 404)
39
+ assert_equal(@command.execute(["lib1", 1, "0.2", "my_grp"]), 404)
40
40
  end
41
41
 
42
42
  should "create a library" do
@@ -45,7 +45,7 @@ class CreateLibraryCommandTest < Test::Unit::TestCase
45
45
  returns([201, {:id => 1}, {}])
46
46
  @command.expects(:say).with("Created library [lib1] with ID [1]")
47
47
 
48
- @command.execute("", "lib1", 1, "0.2", "my_grp")
48
+ @command.execute(["lib1", 1, "0.2", "my_grp"])
49
49
  end
50
50
 
51
51
  context "library with a file to upload" do
@@ -56,7 +56,7 @@ class CreateLibraryCommandTest < Test::Unit::TestCase
56
56
  @command.expects(:sha1).with("/a/file")
57
57
  @command.expects(:upload_library).with("/a/file", "http://foo", "abc")
58
58
  @command.options[:file] ="/a/file"
59
- assert_equal(@command.execute("", "lib1", 1, "0.2", "my_grp"), 201)
59
+ assert_equal(@command.execute(["lib1", 1, "0.2", "my_grp"]), 201)
60
60
  end
61
61
  end
62
62
 
@@ -19,7 +19,7 @@ class CreateLibrarylanguageCommandTest < Test::Unit::TestCase
19
19
  @mock_client.expects(:post).with(EPC::Config::LIBRARY_LANGUAGES_PATH, {:name => "ruby"}).
20
20
  returns([500, {:message => "System exception"}, {}])
21
21
  @command.expects(:say).with("Failed to create [ruby] language: [System exception]")
22
- assert_equal(@command.execute("", "ruby"), 1)
22
+ assert_equal(@command.execute(["ruby"]), 1)
23
23
  end
24
24
 
25
25
 
@@ -32,7 +32,7 @@ class CreateLibrarylanguageCommandTest < Test::Unit::TestCase
32
32
  returns([201, {}, {}])
33
33
  @command.expects(:say).with("Language [java] added")
34
34
 
35
- assert_equal(@command.execute("", "ruby", "java"), 0)
35
+ assert_equal(@command.execute(["ruby", "java"]), 0)
36
36
  end
37
37
 
38
38
 
@@ -45,7 +45,7 @@ class CreateLibrarylanguageCommandTest < Test::Unit::TestCase
45
45
  returns([201, {}, {}])
46
46
  @command.expects(:say).with("Language [java] added")
47
47
 
48
- assert_equal(@command.execute("", "ruby", "java"), 0)
48
+ assert_equal(@command.execute(["ruby", "java"]), 0)
49
49
  end
50
50
  end
51
51
  end
@@ -7,40 +7,20 @@ class CreateLibrarysetCommandTest < Test::Unit::TestCase
7
7
  setup do
8
8
  @mock_client = mock("Client")
9
9
  @command = EPC::Command::CreateLibrarysetCommand.new(@mock_client)
10
+ @command.expects(:retrieve_identifier_for).returns(1)
10
11
  end
11
12
 
12
-
13
- should "fail if no name is specified" do
14
- assert_raise EPC::Error::FatalError do
15
- assert_equal(@command.execute(""), 1)
16
- end
17
- end
18
-
19
- should "fail if no language is specified" do
20
- assert_raise EPC::Error::FatalError do
21
- @command.execute("", "set")
22
- end
23
- end
24
-
25
-
26
13
  should "create the set with a language associated if one specified" do
27
14
  @mock_client.expects(:post).with(EPC::Config::LIBRARY_SETS_PATH, {:name => "rubylibs", :language_id => 1}).returns([201, {}, {}])
28
15
  @command.expects(:say)
29
- assert_equal(@command.execute("", "rubylibs", "1"), 201)
30
- end
31
-
32
- should "retrieve the language id" do
33
- @command.expects(:retrieve_identifier_for).returns(1)
34
- @mock_client.expects(:post).with(EPC::Config::LIBRARY_SETS_PATH, {:name => "rubylibs", :language_id => 1}).returns([201, {}, {}])
35
- @command.expects(:say)
36
- assert_equal(@command.execute("", "rubylibs", "ruby"), 201)
16
+ assert_equal(@command.execute(["rubylibs", "1"]), 201)
37
17
  end
38
18
 
39
19
  should "fail if status is not 201" do
40
20
  @mock_client.expects(:post).with(EPC::Config::LIBRARY_SETS_PATH, {:name => "rubylibs", :language_id => 1}).
41
21
  returns([500, {:message => "System exception"}, {}])
42
22
  @command.expects(:say).with("Request failed: [System exception]")
43
- assert_equal(@command.execute("", "rubylibs", "1"), 500)
23
+ assert_equal(@command.execute(["rubylibs", "1"]), 500)
44
24
  end
45
25
 
46
26
  should "create the set" do
@@ -48,7 +28,7 @@ class CreateLibrarysetCommandTest < Test::Unit::TestCase
48
28
  returns([201, {}, {}])
49
29
  @command.expects(:say).with("Set [rubylibs] created")
50
30
 
51
- assert_equal(@command.execute("", "rubylibs", "1"), 201)
31
+ assert_equal(@command.execute(["rubylibs", "1"]), 201)
52
32
  end
53
33
 
54
34
  context "adding from file" do
@@ -65,7 +45,7 @@ class CreateLibrarysetCommandTest < Test::Unit::TestCase
65
45
  @mock_client.expects(:post).with(EPC::Config::LIBRARY_SETS_PATH + "/1/attach_library", :library_id => 1).returns([200, {}, {}])
66
46
  @command.expects(:say).with("Library [1] added to set")
67
47
 
68
- assert_equal(@command.execute("", "rubylibs", "1"), 0)
48
+ assert_equal(@command.execute(["rubylibs", "1"]), 0)
69
49
  end
70
50
 
71
51
  should "notify when a library fails to be attached" do
@@ -74,7 +54,7 @@ class CreateLibrarysetCommandTest < Test::Unit::TestCase
74
54
  @mock_client.expects(:post).with(EPC::Config::LIBRARY_SETS_PATH + "/1/attach_library", :library_id => 1).returns([404, {:message => "Not Found"}, {}])
75
55
  @command.expects(:say).with("Failed to add [1]: [Not Found]")
76
56
 
77
- assert_equal(@command.execute("", "rubylibs", "1"), 1)
57
+ assert_equal(@command.execute(["rubylibs", "1"]), 1)
78
58
  end
79
59
  end
80
60
  end
@@ -7,30 +7,21 @@ class CreateObjectroleCommandTest < Test::Unit::TestCase
7
7
  setup do
8
8
  @mock_client = mock("Client")
9
9
  @command = EPC::Command::CreateObjectroleCommand.new(@mock_client)
10
+ @command.target_id = "1"
11
+ @command.target_type = "Solution"
10
12
  end
11
13
 
12
- should "fail if no role name and object specified" do
13
- assert_raise EPC::Error::FatalError do
14
- @command.execute
15
- end
16
- end
17
-
18
- should "fail if object is not specified correctly" do
19
- assert_raise EPC::Error::FatalError do
20
- @command.execute("Solution", "admin")
21
- end
22
- end
23
14
 
24
15
  should "request creation of the role" do
25
16
  @mock_client.expects(:post).with(EPC::Config::ROLES_PATH, {:name => "Admin", :owner_id => "1", :owner_type => "Solution"}).returns([200, {}, {}])
26
17
  @command.expects(:say).with("Role [Admin] created")
27
- @command.execute("Solution:1", "Admin")
18
+ @command.execute(["Admin"])
28
19
  end
29
20
 
30
21
  should "report reason for request failure" do
31
22
  @mock_client.expects(:post).with(EPC::Config::ROLES_PATH, {:name => "Admin", :owner_id => "1", :owner_type => "Solution"}).returns([500, {:message => "System Exception"}, {}])
32
23
  @command.expects(:say).with("Request failed: [System Exception]")
33
- @command.execute("Solution:1", "Admin")
24
+ @command.execute(["Admin"])
34
25
  end
35
26
  end
36
27
 
@@ -10,11 +10,11 @@ class CreateProjectCommandTest < Test::Unit::TestCase
10
10
  @command = EPC::Command::CreateProjectCommand.new(@mock_client)
11
11
  end
12
12
 
13
- should "report error if project_name is nil" do
13
+ should "report error if the project name is nil" do
14
14
  @command.expects(:infer_solution_context).never
15
15
  @mock_client.expects(:post).never
16
16
  assert_raise EPC::Error::FatalError do
17
- @command.execute(nil)
17
+ @command.execute
18
18
  end
19
19
  end
20
20
 
@@ -22,7 +22,7 @@ class CreateProjectCommandTest < Test::Unit::TestCase
22
22
  @command.options[:type] = 1
23
23
  @command.expects(:infer_solution_context).returns(nil)
24
24
  assert_raise EPC::Error::InputError do
25
- assert_equal(@command.execute("", "FirstProject"), 1)
25
+ assert_equal(@command.execute(["FirstProject"]), 1)
26
26
  end
27
27
  end
28
28
  end
@@ -41,7 +41,7 @@ class CreateProjectCommandTest < Test::Unit::TestCase
41
41
  should "create the project directory if the status is 201" do
42
42
  @command.options[:type] = "Ruby"
43
43
  @command.expects(:get_resource_id).with(EPC::Config::PROJECT_TYPES_PATH, :name, "Ruby", :case_sensitivity => false).returns(1)
44
- @mock_client.expects(:post).with("/api/v1/projects", { :project_name => 'FirstProject', :solution_name => "FirstSolution", :uri_name => "FirstProject", :project_type_id => 1 }).
44
+ @mock_client.expects(:post).with("/api/v1/projects", { :name => 'FirstProject', :solution_name => "FirstSolution", :uri_name => "FirstProject", :project_type_id => 1, :runtime_memory => nil }).
45
45
  returns([201, { :id => 1, :current_version_number => 99 }, {}])
46
46
  EPC::Config.expects(:write_project_metadata).with(1, @mock_client)
47
47
 
@@ -49,24 +49,24 @@ class CreateProjectCommandTest < Test::Unit::TestCase
49
49
  @command.expects(:mkdir).with("FirstProject").returns(:ok)
50
50
  @command.expects(:say).with("Successfully created the project with [http://localhost:3000] and created your local directory.")
51
51
 
52
- assert_equal(@command.execute("", "FirstProject"), 201)
52
+ assert_equal(@command.execute(["FirstProject"]), 201)
53
53
  end
54
54
 
55
55
  should "skip directory creation if --nodir option was passed" do
56
56
  @command.instance_variable_get(:@options)[:nodir] = true
57
57
 
58
- @mock_client.expects(:post).with("/api/v1/projects", { :project_name => 'FirstProject', :solution_name => "FirstSolution", :uri_name => "FirstProject", :project_type_id => 1 }).
58
+ @mock_client.expects(:post).with("/api/v1/projects", { :name => 'FirstProject', :solution_name => "FirstSolution", :uri_name => "FirstProject", :project_type_id => 1, :runtime_memory => nil }).
59
59
  returns([201, { :id => 1, :current_version_number => 99 }, {}])
60
60
 
61
61
  @command.expects(:ask_yn).returns("Y")
62
62
  @command.expects(:say).with("Successfully created the project with [http://localhost:3000]")
63
63
 
64
- assert_equal(@command.execute("", "FirstProject"), 201)
64
+ assert_equal(@command.execute(["FirstProject"]), 201)
65
65
  end
66
66
 
67
67
  should "report failure if the status is 201 and the solution directory cannot be created" do
68
68
 
69
- @mock_client.expects(:post).with("/api/v1/projects", { :project_name => 'TestProject', :solution_name => "FirstSolution", :uri_name => "TestProject", :project_type_id => 1 }).
69
+ @mock_client.expects(:post).with("/api/v1/projects", { :name => 'TestProject', :solution_name => "FirstSolution", :uri_name => "TestProject", :project_type_id => 1, :runtime_memory => nil }).
70
70
  returns([201, { :id => 1, :current_version_number => 99 }, {}])
71
71
  FileUtils.expects(:mkdir).with("TestProject", {}).raises(SystemCallError.new("File exists - TestProject"))
72
72
 
@@ -74,29 +74,43 @@ class CreateProjectCommandTest < Test::Unit::TestCase
74
74
  @command.expects(:say).with("Failed to create local directory [TestProject] - [unknown error - File exists - TestProject]")
75
75
  @command.expects(:say).with("Successfully created the project with [http://localhost:3000], but FAILED to create your local directory.")
76
76
 
77
- assert_equal(@command.execute("", "TestProject"), 201)
77
+ assert_equal(@command.execute(["TestProject"]), 201)
78
+ end
79
+
80
+ should "send the runtime memory when supplied" do
81
+ @command.options[:type] = "Ruby"
82
+ @command.expects(:get_resource_id).with(EPC::Config::PROJECT_TYPES_PATH, :name, "Ruby", :case_sensitivity => false).returns(1)
83
+ @mock_client.expects(:post).with("/api/v1/projects", { :name => 'FirstProject', :solution_name => "FirstSolution", :uri_name => "FirstProject", :project_type_id => 1, :runtime_memory => 128 }).
84
+ returns([201, { :id => 1, :current_version_number => 99 }, {}])
85
+ EPC::Config.expects(:write_project_metadata).with(1, @mock_client)
86
+
87
+ @command.expects(:ask_yn).returns("Y")
88
+ @command.expects(:mkdir).with("FirstProject").returns(:ok)
89
+ @command.expects(:say).with("Successfully created the project with [http://localhost:3000] and created your local directory.")
90
+
91
+ assert_equal(@command.execute(["FirstProject",nil,128]), 201)
78
92
  end
79
93
 
80
94
  should "report failure if the status is not 201" do
81
95
 
82
- @mock_client.expects(:post).with("/api/v1/projects", { :project_name => 'TestProject', :solution_name => "FirstSolution", :uri_name => "TestProject", :project_type_id => 1 }).
96
+ @mock_client.expects(:post).with("/api/v1/projects", { :name => 'TestProject', :solution_name => "FirstSolution", :uri_name => "TestProject", :project_type_id => 1, :runtime_memory => nil }).
83
97
  returns([400, { :message => "Bad Request" }, {}])
84
98
 
85
99
  @command.expects(:ask_yn).returns("Y")
86
100
  @command.expects(:say).with("Project creation failed [Bad Request].")
87
101
 
88
- assert_equal(@command.execute("", "TestProject"), 400)
102
+ assert_equal(@command.execute(["TestProject"]), 400)
89
103
  end
90
104
 
91
105
  should "report error if the call throws an exception" do
92
106
 
93
- @mock_client.expects(:post).with("/api/v1/projects", { :project_name => 'TestProject', :solution_name => "FirstSolution", :uri_name => "TestProject", :project_type_id => 1 }).
107
+ @mock_client.expects(:post).with("/api/v1/projects", { :name => 'TestProject', :solution_name => "FirstSolution", :uri_name => "TestProject", :project_type_id => 1, :runtime_memory => nil }).
94
108
  raises(StandardError.new("failed"))
95
109
 
96
110
  @command.expects(:ask_yn).returns("Y")
97
111
  @command.expects(:say).with("Project creation failed [failed].")
98
112
 
99
- assert_equal(@command.execute("", "TestProject"), 1)
113
+ assert_equal(@command.execute(["TestProject"]), 1)
100
114
  end
101
115
  end
102
116
  end
@@ -6,6 +6,7 @@ class CreateRoleCommandTest < Test::Unit::TestCase
6
6
  context "execute" do
7
7
  setup do
8
8
  @mock_client = mock("Client")
9
+ EPC::Command::CreateRoleCommand.send :include, EPC::Command::Role
9
10
  @command = EPC::Command::CreateRoleCommand.new(@mock_client)
10
11
  end
11
12
 
@@ -18,13 +19,13 @@ class CreateRoleCommandTest < Test::Unit::TestCase
18
19
  should "request creation of the role" do
19
20
  @mock_client.expects(:post).with(EPC::Config::ROLES_PATH, {:name => "Admin"}).returns([200, {}, {}])
20
21
  @command.expects(:say).with("Role [Admin] created")
21
- @command.execute("", "Admin")
22
+ @command.execute(["Admin"])
22
23
  end
23
24
 
24
25
  should "report reason for request failure" do
25
26
  @mock_client.expects(:post).with(EPC::Config::ROLES_PATH, {:name => "Admin"}).returns([500, {:message => "System Exception"}, {}])
26
27
  @command.expects(:say).with("Request failed: [System Exception]")
27
- @command.execute("", "Admin")
28
+ @command.execute(["Admin"])
28
29
  end
29
30
  end
30
31
 
@@ -0,0 +1,37 @@
1
+ require 'test_helper'
2
+
3
+ class CreateRuntimeCommandTest < Test::Unit::TestCase
4
+ should_require_login
5
+
6
+ context "execute" do
7
+ setup do
8
+ @mock_client = mock("Client")
9
+ @command = EPC::Command::CreateRuntimeCommand.new(@mock_client)
10
+ @command.target_id = 1
11
+ @command.target_type = "RuntimeType"
12
+ end
13
+
14
+ should "fail if mandatory attributes not specified" do
15
+ assert_raise EPC::Error::FatalError do
16
+ @command.execute
17
+ end
18
+ end
19
+
20
+ should "request creation of the runtime" do
21
+ @command.expects(:retrieve_identifier_for).returns(1)
22
+ @mock_client.expects(:post).with(EPC::Config::RUNTIMES_PATH, {:name => "runtime", :target => "runtime_target", :runtime_env_type_id => 1, :deployment_stage_id => 1, :username => "user", :password => "pass"}).returns([200, {}, {}])
23
+ @command.expects(:say).with("Runtime [runtime] created")
24
+ @command.execute(["runtime", "runtime_target", "Development", "user", "pass" ])
25
+ end
26
+
27
+ should "report reason for request failure" do
28
+ @command.expects(:retrieve_identifier_for).returns(1)
29
+ @mock_client.expects(:post).with(EPC::Config::RUNTIMES_PATH, {:name => "runtime", :target => "runtime_target", :runtime_env_type_id => 1, :deployment_stage_id => 1, :username => "user", :password => "pass"}).returns([500, {:message => "System Exception"}, {}])
30
+ @command.expects(:say).with("Request failed: [System Exception]")
31
+ @command.execute(["runtime", "runtime_target", "Development", "user", "pass" ])
32
+ end
33
+
34
+ end
35
+
36
+
37
+ end
@@ -6,37 +6,24 @@ require 'mocha'
6
6
  class CreateServicedefinitionCommandTest < Test::Unit::TestCase
7
7
  should_require_login
8
8
 
9
- context "execution" do
10
- setup do
11
- @mock_client = mock('Client')
12
- end
13
-
14
- should "require both the name and service type" do
15
- @command = EPC::Command::CreateServicedefinitionCommand.new(@mock_client)
16
- assert_raise EPC::Error::FatalError do
17
- @command.execute("")
18
- end
19
- end
20
-
21
- end
22
-
23
9
  context "service definition" do
24
10
  setup do
25
11
  @mock_client = stub('Client')
26
12
  @command = EPC::Command::CreateServicedefinitionCommand.new(@mock_client, {:service_type => "MySQL"})
27
- @command.expects(:retrieve_identifier_for).returns(1)
13
+ @command.target_id = 1
14
+ @command.target_type = "ServiceVersion"
28
15
  end
29
16
 
30
17
  should "fail if status is not 201" do
31
18
  @mock_client.expects(:post).with(EPC::Config::SERVICE_DEFINITIONS_PATH, {:name => "service", :type_id => 1}).returns([400, {:message => 'Not Found'}])
32
19
  @command.expects(:say).with("Service definition failed with: [Not Found]")
33
- @command.execute("", "service", "MySQL")
20
+ @command.execute(["service", "MySQL"])
34
21
  end
35
22
 
36
23
  should "define a service" do
37
24
  @mock_client.expects(:post).with(EPC::Config::SERVICE_DEFINITIONS_PATH, {:name => "service", :type_id => 1}).returns([201, {'id' => 1}])
38
25
  @command.expects(:say).with("service has been defined.")
39
- @command.execute("", "service", "MySQL")
26
+ @command.execute(["service", "MySQL"])
40
27
  end
41
28
  end
42
29
  end
@@ -9,36 +9,23 @@ class CreateServiceversionCommandTest < Test::Unit::TestCase
9
9
  setup do
10
10
  @mock_client = mock("Client")
11
11
  @command = EPC::Command::CreateServiceversionCommand.new(@mock_client)
12
+ @command.target_id = 1
13
+ @command.target_type = "ServiceDefinition"
12
14
  end
13
15
 
14
- should "require the user to input label and service definition" do
15
-
16
- assert_raise EPC::Error::FatalError do
17
- assert_equal(@command.execute(""), 1)
18
- end
19
- end
20
-
21
- should "query for the definition id and notify the user if it wasn't found" do
22
- @command.expects(:get_resource_id).returns(nil)
23
- assert_raise EPC::Error::InputError do
24
- assert_equal(@command.execute("", "main_db", "mysql"), 1)
25
- end
26
- end
27
-
28
-
29
16
  should "show a message if status is not 201" do
30
- @mock_client.expects(:post).with(EPC::Config::SERVICE_VERSIONS_PATH, {:label => "main_db", :definition_id => 1, :up_script => nil, :down_script => nil}).
17
+ @mock_client.expects(:post).with(EPC::Config::SERVICE_VERSIONS_PATH, {:label => "main_db", :service_definition_id => 1, :up_script => nil, :down_script => nil, :backwards_compatible => "false", :reversible => "false"}).
31
18
  returns([404, {:message => "Not Found"}, {}])
32
19
  @command.expects(:say).with("Request failed: [Not Found]")
33
20
 
34
- assert_equal(@command.execute("", "main_db", 1), 404)
21
+ assert_equal(@command.execute(["main_db"]), 404)
35
22
  end
36
23
 
37
24
  should "create a service version with core" do
38
- @mock_client.expects(:post).with(EPC::Config::SERVICE_VERSIONS_PATH, {:label => "main_db", :definition_id => 1, :up_script => nil, :down_script => nil}).
25
+ @mock_client.expects(:post).with(EPC::Config::SERVICE_VERSIONS_PATH, {:label => "main_db", :service_definition_id => 1, :up_script => nil, :down_script => nil, :backwards_compatible => "false", :reversible => "false"}).
39
26
  returns([201, {}, {}])
40
27
  @command.expects(:say).with("Service version successfully created.")
41
- assert_equal(@command.execute("", "main_db", 1), 201)
28
+ assert_equal(@command.execute(["main_db"]), 201)
42
29
  end
43
30
 
44
31
  should "allow up/down scripts" do
@@ -49,12 +36,11 @@ class CreateServiceversionCommandTest < Test::Unit::TestCase
49
36
  @command.expects(:read_file).with("down_script.rb").returns("down()")
50
37
 
51
38
 
52
- @mock_client.expects(:post).with(EPC::Config::SERVICE_VERSIONS_PATH, {:label => "main_db", :definition_id => 1, :up_script => "up()", :down_script => "down()"}).
39
+ @mock_client.expects(:post).with(EPC::Config::SERVICE_VERSIONS_PATH, {:label => "main_db", :service_definition_id => 1, :up_script => "up()", :down_script => "down()", :backwards_compatible => 'false', :reversible => "false"}).
53
40
  returns([201, {}, {}])
54
41
  @command.expects(:say).with("Service version successfully created.")
55
- assert_equal(@command.execute("", "main_db", 1), 201)
42
+ assert_equal(@command.execute(["main_db"]), 201)
56
43
  end
57
44
 
58
45
  end
59
46
  end
60
-