cf 1.1.3.rc1 → 1.1.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 (59) hide show
  1. data/lib/cf/cli.rb +2 -7
  2. data/lib/cf/cli/organization/delete.rb +4 -6
  3. data/lib/cf/cli/service/create.rb +23 -17
  4. data/lib/cf/cli/space/create.rb +43 -41
  5. data/lib/cf/cli/space/space.rb +49 -46
  6. data/lib/cf/version.rb +1 -1
  7. data/lib/console/console.rb +1 -1
  8. data/spec/cf/cli/app/delete_spec.rb +16 -28
  9. data/spec/cf/cli/app/instances_spec.rb +4 -5
  10. data/spec/cf/cli/app/push/create_spec.rb +362 -373
  11. data/spec/cf/cli/app/push_spec.rb +216 -215
  12. data/spec/cf/cli/app/rename_spec.rb +28 -31
  13. data/spec/cf/cli/app/scale_spec.rb +44 -41
  14. data/spec/cf/cli/app/start_spec.rb +194 -193
  15. data/spec/cf/cli/app/stats_spec.rb +55 -56
  16. data/spec/cf/cli/domain/map_spec.rb +105 -102
  17. data/spec/cf/cli/domain/unmap_spec.rb +60 -56
  18. data/spec/cf/cli/organization/delete_spec.rb +85 -84
  19. data/spec/cf/cli/organization/orgs_spec.rb +80 -83
  20. data/spec/cf/cli/organization/rename_spec.rb +90 -89
  21. data/spec/cf/cli/populators/organization_spec.rb +117 -119
  22. data/spec/cf/cli/populators/space_spec.rb +107 -108
  23. data/spec/cf/cli/populators/target_spec.rb +17 -12
  24. data/spec/cf/cli/route/delete_spec.rb +4 -4
  25. data/spec/cf/cli/route/map_spec.rb +106 -102
  26. data/spec/cf/cli/route/unmap_spec.rb +5 -5
  27. data/spec/cf/cli/service/create_spec.rb +74 -46
  28. data/spec/cf/cli/service/rename_spec.rb +29 -33
  29. data/spec/cf/cli/service/services_spec.rb +48 -48
  30. data/spec/cf/cli/space/base_spec.rb +39 -32
  31. data/spec/cf/cli/space/create_spec.rb +52 -53
  32. data/spec/cf/cli/space/delete_spec.rb +84 -85
  33. data/spec/cf/cli/space/rename_spec.rb +93 -94
  34. data/spec/cf/cli/space/space_spec.rb +60 -60
  35. data/spec/cf/cli/space/spaces_spec.rb +75 -80
  36. data/spec/cf/cli/space/switch_space_spec.rb +45 -48
  37. data/spec/cf/cli/start/info_spec.rb +4 -6
  38. data/spec/cf/cli/start/login_spec.rb +18 -20
  39. data/spec/cf/cli/start/logout_spec.rb +36 -37
  40. data/spec/cf/cli/start/target_spec.rb +86 -89
  41. data/spec/cf/cli/user/create_spec.rb +83 -84
  42. data/spec/cf/cli/user/passwd_spec.rb +87 -86
  43. data/spec/cf/cli/user/register_spec.rb +109 -108
  44. data/spec/cf/cli_spec.rb +305 -310
  45. data/spec/console/console_spec.rb +58 -58
  46. data/spec/factories/cfoundry/v2/domain_factory.rb +8 -0
  47. data/spec/factories/cfoundry/v2/route_factory.rb +8 -0
  48. data/spec/factories/cfoundry/v2/user_factory.rb +7 -0
  49. data/spec/features/org_spec.rb +11 -11
  50. data/spec/manifests/manifests_spec.rb +21 -21
  51. data/spec/manifests/plugin_spec.rb +34 -34
  52. data/spec/spec_helper.rb +1 -2
  53. data/spec/support/cli_helper.rb +5 -14
  54. data/spec/support/factory_girl.rb +6 -0
  55. data/spec/support/interact_helper.rb +5 -15
  56. data/spec/support/shared_examples/errors.rb +1 -1
  57. data/spec/tunnel/plugin_spec.rb +2 -2
  58. data/spec/tunnel/tunnel_spec.rb +5 -5
  59. metadata +36 -28
@@ -1,15 +1,15 @@
1
1
  require "spec_helper"
2
2
 
3
- describe "CFConsole" do
3
+ describe CFConsole do
4
4
  before do
5
- @app = mock("app")
5
+ @app = double("app")
6
6
  @console = CFConsole.new(nil, @app)
7
7
  end
8
8
 
9
9
  it "should return connection info for apps that have a console ip and port" do
10
- instance = mock("instance")
11
- mock(@app).instances { [instance] }
12
- mock(instance).console { {:ip => "192.168.1.1", :port => 3344} }
10
+ instance = double("instance")
11
+ @app.should_receive(:instances) { [instance] }
12
+ instance.should_receive(:console) { {:ip => "192.168.1.1", :port => 3344} }
13
13
 
14
14
  @console.get_connection_info(nil).should == {
15
15
  "hostname" => "192.168.1.1",
@@ -18,7 +18,7 @@ describe "CFConsole" do
18
18
  end
19
19
 
20
20
  it "should raise error when no app instances found" do
21
- mock(@app).instances { [] }
21
+ @app.should_receive(:instances) { [] }
22
22
 
23
23
  expect {
24
24
  @console.get_connection_info(nil)
@@ -26,9 +26,9 @@ describe "CFConsole" do
26
26
  end
27
27
 
28
28
  it "should raise error when app does not have console access" do
29
- instance = mock("instance")
30
- mock(@app).instances { [instance] }
31
- mock(instance).console { nil }
29
+ instance = double("instance")
30
+ @app.should_receive(:instances) { [instance] }
31
+ instance.should_receive(:console) { nil }
32
32
 
33
33
  expect {
34
34
  @console.get_connection_info(nil)
@@ -46,7 +46,7 @@ describe "CFConsole" do
46
46
 
47
47
  context "when console credentials cannot be obtained" do
48
48
  it "should raise error" do
49
- mock(@app).file(*@creds[:path]) { "username: cfuser" }
49
+ @app.should_receive(:file).with(*@creds[:path]) { "username: cfuser" }
50
50
 
51
51
  expect {
52
52
  @console.start_console
@@ -56,63 +56,63 @@ describe "CFConsole" do
56
56
 
57
57
  context "when console credentials can be obtained" do
58
58
  before do
59
- mock(@app).file(*@creds[:path]) { @creds[:yaml] }
59
+ @app.should_receive(:file).with(*@creds[:path]) { @creds[:yaml] }
60
60
  @telnet = Object.new
61
- mock(@console).telnet_client { @telnet }
61
+ @console.should_receive(:telnet_client).and_return(@telnet)
62
62
  end
63
63
 
64
64
  it "should raise error if authentication fails" do
65
- mock(@telnet).login(@creds[:telnet]) { "Login failed" }
66
- mock(@telnet).close
65
+ @telnet.should_receive(:login).with(@creds[:telnet]) { "Login failed" }
66
+ @telnet.should_receive(:close)
67
67
 
68
68
  expect { @console.start_console }.to raise_error("Login failed")
69
69
  end
70
70
 
71
71
  it "should retry authentication on timeout" do
72
- mock(@telnet).login(@creds[:telnet]){ raise TimeoutError }
73
- mock(@telnet).login(@creds[:telnet]) { "Switch to inspect mode\nirb():001:0> " }
72
+ @telnet.should_receive(:login).with(@creds[:telnet]){ raise TimeoutError }
73
+ @telnet.should_receive(:login).with(@creds[:telnet]) { "Switch to inspect mode\nirb():001:0> " }
74
74
  verify_console_exit("irb():001:0> ")
75
75
 
76
76
  @console.start_console
77
77
  end
78
78
 
79
79
  it "should retry authentication on EOF" do
80
- mock(@console).telnet_client { @telnet }
81
- mock(@telnet).login(@creds[:telnet]) { raise EOFError }
82
- mock(@telnet).close
83
- mock(@telnet).login(@creds[:telnet]) { "irb():001:0> " }
80
+ @console.should_receive(:telnet_client).and_return(@telnet)
81
+ @telnet.should_receive(:login).with(@creds[:telnet]) { raise EOFError }
82
+ @telnet.should_receive(:close)
83
+ @telnet.should_receive(:login).with(@creds[:telnet]).and_return("irb():001:0> ")
84
84
  verify_console_exit("irb():001:0> ")
85
85
 
86
86
  @console.start_console
87
87
  end
88
88
 
89
89
  it "should operate console interactively" do
90
- mock(@telnet).login(@creds[:telnet]) { "irb():001:0> " }
91
- mock(Readline).readline("irb():001:0> ") { "puts 'hi'" }
92
- mock(Readline::HISTORY).push("puts 'hi'")
93
- mock(@telnet).cmd("puts 'hi'") { "nil" + "\n" + "irb():002:0> " }
94
- mock(@console).puts("nil")
90
+ @telnet.should_receive(:login).with(@creds[:telnet]).and_return("irb():001:0> ")
91
+ Readline.should_receive(:readline).with("irb():001:0> ") { "puts 'hi'" }
92
+ Readline::HISTORY.should_receive(:push).with("puts 'hi'")
93
+ @telnet.should_receive(:cmd).with("puts 'hi'").and_return("nil" + "\n" + "irb():002:0> ")
94
+ @console.should_receive(:puts).with("nil")
95
95
  verify_console_exit("irb():002:0> ")
96
96
 
97
97
  @console.start_console
98
98
  end
99
99
 
100
100
  it "should not crash if command times out" do
101
- mock(@telnet).login(@creds[:telnet]) { "irb():001:0> " }
102
- mock(Readline).readline("irb():001:0> ") { "puts 'hi'" }
103
- mock(Readline::HISTORY).push("puts 'hi'")
104
- mock(@telnet).cmd("puts 'hi'") { raise TimeoutError }
105
- mock(@console).puts("Timed out sending command to server.")
101
+ @telnet.should_receive(:login).with(@creds[:telnet]).and_return("irb():001:0> ")
102
+ Readline.should_receive(:readline).with("irb():001:0> ") { "puts 'hi'" }
103
+ Readline::HISTORY.should_receive(:push).with("puts 'hi'")
104
+ @telnet.should_receive(:cmd).with("puts 'hi'") { raise TimeoutError }
105
+ @console.should_receive(:puts).with("Timed out sending command to server.")
106
106
  verify_console_exit("irb():001:0> ")
107
107
 
108
108
  @console.start_console
109
109
  end
110
110
 
111
111
  it "should raise error if an EOF is received" do
112
- mock(@telnet).login(@creds[:telnet]) { "Switch to inspect mode\nirb():001:0> " }
113
- mock(Readline).readline("irb():001:0> ") { "puts 'hi'" }
114
- mock(Readline::HISTORY).push("puts 'hi'")
115
- mock(@telnet).cmd("puts 'hi'") { raise EOFError }
112
+ @telnet.should_receive(:login).with(@creds[:telnet]).and_return("Switch to inspect mode\nirb():001:0> ")
113
+ Readline.should_receive(:readline).with("irb():001:0> ") { "puts 'hi'" }
114
+ Readline::HISTORY.should_receive(:push).with("puts 'hi'")
115
+ @telnet.should_receive(:cmd).with("puts 'hi'") { raise EOFError }
116
116
 
117
117
  expect {
118
118
  @console.start_console
@@ -120,30 +120,30 @@ describe "CFConsole" do
120
120
  end
121
121
 
122
122
  it "should not keep blank lines in history" do
123
- mock(@telnet).login(@creds[:telnet]) { "irb():001:0> " }
124
- mock(Readline).readline("irb():001:0> ") { "" }
125
- dont_allow(Readline::HISTORY).push("")
126
- mock(@telnet).cmd("") { "irb():002:0*> " }
123
+ @telnet.should_receive(:login).with(@creds[:telnet]).and_return("irb():001:0> ")
124
+ Readline.should_receive(:readline).with("irb():001:0> ") { "" }
125
+ Readline::HISTORY.should_not_receive(:push)
126
+ @telnet.should_receive(:cmd).and_return("irb():002:0*> ")
127
127
  verify_console_exit("irb():002:0*> ")
128
128
 
129
129
  @console.start_console
130
130
  end
131
131
 
132
132
  it "should not keep identical commands in history" do
133
- mock(@telnet).login(@creds[:telnet]) { "irb():001:0> " }
134
- mock(Readline).readline("irb():001:0> ") { "puts 'hi'" }
135
- mock(Readline::HISTORY).to_a { ["puts 'hi'"] }
136
- dont_allow(Readline::HISTORY).push("puts 'hi'")
137
- mock(@telnet).cmd("puts 'hi'") { "nil" + "\n" + "irb():002:0> " }
138
- mock(@console).puts("nil")
133
+ @telnet.should_receive(:login).with(@creds[:telnet]).and_return("irb():001:0> ")
134
+ Readline.should_receive(:readline).with("irb():001:0> ") { "puts 'hi'" }
135
+ Readline::HISTORY.should_receive(:to_a).and_return(["puts 'hi'"])
136
+ Readline::HISTORY.should_not_receive(:push).with("puts 'hi'")
137
+ @telnet.should_receive(:cmd).with("puts 'hi'").and_return("nil" + "\n" + "irb():002:0> ")
138
+ @console.should_receive(:puts).with("nil")
139
139
  verify_console_exit("irb():002:0> ")
140
140
 
141
141
  @console.start_console
142
142
  end
143
143
 
144
144
  it "should return tab completion data" do
145
- mock(@telnet).login(@creds[:telnet]) { "Switch to inspect mode\nirb():001:0> " }
146
- mock(@telnet).cmd("String" => "app.\t", "Match" => /\S*\n$/, "Timeout" => 10) { "to_s,nil?\n" }
145
+ @telnet.should_receive(:login).with(@creds[:telnet]).and_return("Switch to inspect mode\nirb():001:0> ")
146
+ @telnet.should_receive(:cmd).with("String" => "app.\t", "Match" => /\S*\n$/, "Timeout" => 10) { "to_s,nil?\n" }
147
147
  verify_console_exit("irb():001:0> ")
148
148
 
149
149
  @console.start_console
@@ -151,8 +151,8 @@ describe "CFConsole" do
151
151
  end
152
152
 
153
153
  it "should return tab completion data receiving empty completion string" do
154
- mock(@telnet).login(@creds[:telnet]) { "irb():001:0> " }
155
- mock(@telnet).cmd("String" => "app.\t", "Match" => /\S*\n$/, "Timeout" => 10) { "\n" }
154
+ @telnet.should_receive(:login).with(@creds[:telnet]).and_return("irb():001:0> ")
155
+ @telnet.should_receive(:cmd).with("String" => "app.\t", "Match" => /\S*\n$/, "Timeout" => 10) { "\n" }
156
156
  verify_console_exit("irb():001:0> ")
157
157
 
158
158
  @console.start_console
@@ -160,8 +160,8 @@ describe "CFConsole" do
160
160
  end
161
161
 
162
162
  it "should not crash on timeout of remote tab completion data" do
163
- mock(@telnet).login(@creds[:telnet]) { "Switch to inspect mode\nirb():001:0> " }
164
- mock(@telnet).cmd("String" => "app.\t", "Match" => /\S*\n$/, "Timeout" => 10) { raise TimeoutError }
163
+ @telnet.should_receive(:login).with(@creds[:telnet]).and_return("Switch to inspect mode\nirb():001:0> ")
164
+ @telnet.should_receive(:cmd).with("String" => "app.\t", "Match" => /\S*\n$/, "Timeout" => 10) { raise TimeoutError }
165
165
  verify_console_exit("irb():001:0> ")
166
166
 
167
167
  @console.start_console
@@ -169,11 +169,11 @@ describe "CFConsole" do
169
169
  end
170
170
 
171
171
  it "should properly initialize Readline for tab completion" do
172
- mock(@telnet).login(@creds[:telnet]) { "irb():001:0> " }
173
- mock(Readline).respond_to?("basic_word_break_characters=") { true }
174
- mock(Readline).basic_word_break_characters=(" \t\n`><=;|&{(")
175
- mock(Readline).completion_append_character=(nil)
176
- mock(Readline).completion_proc=(anything)
172
+ @telnet.should_receive(:login).with(@creds[:telnet]).and_return("irb():001:0> ")
173
+ Readline.should_receive(:respond_to?).with("basic_word_break_characters=") { true }
174
+ Readline.should_receive(:basic_word_break_characters=).with(" \t\n`><=;|&{(")
175
+ Readline.should_receive(:completion_append_character=).with(nil)
176
+ Readline.should_receive(:completion_proc=).with(anything)
177
177
  verify_console_exit("irb():001:0> ")
178
178
 
179
179
  @console.start_console
@@ -182,8 +182,8 @@ describe "CFConsole" do
182
182
  end
183
183
 
184
184
  def verify_console_exit(prompt)
185
- mock(Readline).readline(prompt) { "exit" }
186
- mock(@telnet).cmd("String" => "exit", "Timeout" => 1) { raise TimeoutError }
187
- mock(@telnet).close
185
+ Readline.should_receive(:readline).with(prompt) { "exit" }
186
+ @telnet.should_receive(:cmd).with("String" => "exit", "Timeout" => 1) { raise TimeoutError }
187
+ @telnet.should_receive(:close)
188
188
  end
189
189
  end
@@ -0,0 +1,8 @@
1
+ FactoryGirl.define do
2
+ factory :domain, :class => CFoundry::V2::Domain do
3
+ guid { "domain-id-1" }
4
+ name { "domain-name-1" }
5
+ client nil
6
+ initialize_with { new(guid, client) }
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ FactoryGirl.define do
2
+ factory :route, :class => CFoundry::V2::Route do
3
+ guid { "route-id-1" }
4
+ host { "route-host-1" }
5
+ client nil
6
+ initialize_with { new(guid, client) }
7
+ end
8
+ end
@@ -0,0 +1,7 @@
1
+ FactoryGirl.define do
2
+ factory :user, :class => CFoundry::V2::User do
3
+ guid { "user-id-1" }
4
+ client nil
5
+ initialize_with { new(guid, client) }
6
+ end
7
+ end
@@ -1,7 +1,6 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
-
4
- if ENV['CF_V2_RUN_INTEGRATION']
3
+ if ENV["CF_V2_RUN_INTEGRATION"]
5
4
  describe "creating and deleting orgs", :ruby19 => true do
6
5
  before(:all) do
7
6
  WebMock.allow_net_connect!
@@ -11,11 +10,11 @@ if ENV['CF_V2_RUN_INTEGRATION']
11
10
  WebMock.disable_net_connect!
12
11
  end
13
12
 
14
- let(:target) { ENV['CF_V2_TEST_TARGET'] }
15
- let(:organization) { ENV['CF_V2_TEST_ORGANIZATION'] }
16
- let(:space) { ENV['CF_V2_TEST_SPACE'] }
17
- let(:username) { ENV['CF_V2_ADMIN_USERNAME'] }
18
- let(:password) { ENV['CF_V2_ADMIN_PW'] }
13
+ let(:target) { ENV["CF_V2_TEST_TARGET"] }
14
+ let(:organization) { ENV["CF_V2_TEST_ORGANIZATION"] }
15
+ let(:space) { ENV["CF_V2_TEST_SPACE"] }
16
+ let(:username) { ENV["CF_V2_ADMIN_USERNAME"] }
17
+ let(:password) { ENV["CF_V2_ADMIN_PW"] }
19
18
 
20
19
  let(:run_id) { TRAVIS_BUILD_ID.to_s + Time.new.to_f.to_s.gsub(".", "_") }
21
20
  let(:new_org_name) { "new-org-#{run_id}" }
@@ -47,9 +46,10 @@ if ENV['CF_V2_RUN_INTEGRATION']
47
46
  runner.should say "Creating space new-space... OK"
48
47
  end
49
48
 
50
- BlueShell::Runner.run("cf delete-org #{new_org_name} --force") do |runner|
51
- runner.should say "If you want to delete the organization along with all dependent objects, rerun the command with the '--recursive' flag."
52
- end
49
+ # pending until cc change 442f08e72c0808baf85b948a8b56e58f025edf72 is on a1
50
+ #BlueShell::Runner.run("cf delete-org #{new_org_name} --force") do |runner|
51
+ # runner.should say "If you want to delete the organization along with all dependent objects, rerun the command with the '--recursive' flag."
52
+ #end
53
53
 
54
54
  BlueShell::Runner.run("cf delete-org #{new_org_name} --force --recursive") do |runner|
55
55
  runner.should say("Deleting organization #{new_org_name}... OK")
@@ -1,4 +1,4 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  describe CFManifests do
4
4
  let(:inputs_hash) { {} }
@@ -9,7 +9,7 @@ describe CFManifests do
9
9
  let(:cmd) do
10
10
  manifest = CF::App::Push.new(nil, inputs)
11
11
  manifest.extend CFManifests
12
- stub(manifest).client { client }
12
+ manifest.stub(:client) { client }
13
13
  manifest
14
14
  end
15
15
 
@@ -28,22 +28,22 @@ describe CFManifests do
28
28
  let(:manifest_file) { "/abc/manifest.yml" }
29
29
 
30
30
  before do
31
- stub(cmd).target_base { target_base }
31
+ cmd.stub(:target_base) { target_base }
32
32
 
33
- stub(cmd).manifest { manifest }
34
- stub(cmd).manifest_file { manifest_file }
33
+ cmd.stub(:manifest) { manifest }
34
+ cmd.stub(:manifest_file) { manifest_file }
35
35
  end
36
36
 
37
- describe '#find_apps' do
37
+ describe "#find_apps" do
38
38
  subject { cmd.find_apps(nil) }
39
39
 
40
- context 'when there is no manifest file' do
41
- before { stub(cmd).manifest { nil } }
40
+ context "when there is no manifest file" do
41
+ before { cmd.stub(:manifest).and_return(nil) }
42
42
  it { should eq [] }
43
43
  end
44
44
  end
45
45
 
46
- describe '#create_manifest_for' do
46
+ describe "#create_manifest_for" do
47
47
  let(:app) {
48
48
  fake :app,
49
49
  :memory => 2048,
@@ -105,7 +105,7 @@ describe CFManifests do
105
105
  end
106
106
  end
107
107
 
108
- context 'when there is no url' do
108
+ context "when there is no url" do
109
109
  let(:app) {
110
110
  fake :app,
111
111
  :memory => 2048,
@@ -115,7 +115,7 @@ describe CFManifests do
115
115
  its(["url"]) { should eq "none" }
116
116
  end
117
117
 
118
- context 'when there is no command' do
118
+ context "when there is no command" do
119
119
  let(:app) {
120
120
  fake :app,
121
121
  :memory => 2048,
@@ -125,7 +125,7 @@ describe CFManifests do
125
125
  it { should_not include "command" }
126
126
  end
127
127
 
128
- context 'when there are no service bindings' do
128
+ context "when there are no service bindings" do
129
129
  let(:app) {
130
130
  fake :app,
131
131
  :memory => 2048,
@@ -174,21 +174,21 @@ describe CFManifests do
174
174
  let(:service_bindings) { [fake(:service_binding, :service_instance => service_1)] }
175
175
 
176
176
  it "does neither create nor bind the service again" do
177
- dont_allow(cmd).invoke :create_service, anything
178
- dont_allow(cmd).invoke :bind_service, anything
177
+ cmd.should_not_receive(:invoke).with(:create_service, anything)
178
+ cmd.should_not_receive(:invoke).with(:bind_service, anything)
179
179
  cmd.send(:setup_services, app, info)
180
180
  end
181
181
  end
182
182
 
183
183
  context "but are not bound" do
184
184
  it "does not create the services" do
185
- dont_allow(cmd).invoke :create_service, anything
186
- stub(cmd).invoke :bind_service, anything
185
+ cmd.should_not_receive(:invoke).with(:create_service, anything)
186
+ cmd.stub(:invoke).with(:bind_service, anything)
187
187
  cmd.send(:setup_services, app, info)
188
188
  end
189
189
 
190
190
  it "binds the service" do
191
- mock(cmd).invoke :bind_service, :app => app, :service => service_1
191
+ cmd.should_receive(:invoke).with(:bind_service, :app => app, :service => service_1)
192
192
  cmd.send(:setup_services, app, info)
193
193
  end
194
194
  end
@@ -196,9 +196,9 @@ describe CFManifests do
196
196
 
197
197
  context "and the services do not exist" do
198
198
  it "creates the services" do
199
- mock(cmd).invoke :create_service, :app => app,
200
- :name => service_1.name, :offering => mysql, :plan => plan_100
201
- dont_allow(cmd).invoke :bind_service, anything
199
+ cmd.should_receive(:invoke).with(:create_service, :app => app,
200
+ :name => service_1.name, :offering => mysql, :plan => plan_100)
201
+ cmd.should_not_receive(:invoke).with(:bind_service, anything)
202
202
  cmd.send(:setup_services, app, info)
203
203
  end
204
204
  end
@@ -302,7 +302,7 @@ describe CFManifests do
302
302
  subject { cmd.current_apps }
303
303
 
304
304
  it "returns the applications with the cwd as their path" do
305
- stub(Dir).pwd { "/abc" }
305
+ Dir.stub(:pwd) { "/abc" }
306
306
  expect(subject).to eq [{ :name => "foo", :path => "/abc"}, { :name => "bar", :path => "/abc" }]
307
307
  end
308
308
  end
@@ -13,14 +13,14 @@ describe ManifestsPlugin do
13
13
  let(:client) { fake_client }
14
14
 
15
15
  before do
16
- stub(plugin).manifest { manifest }
17
- stub(plugin).manifest_file { manifest_file } if manifest_file
18
- stub(plugin).client { client }
16
+ plugin.stub(:manifest) { manifest }
17
+ plugin.stub(:manifest_file) { manifest_file } if manifest_file
18
+ plugin.stub(:client) { client }
19
19
  end
20
20
 
21
21
  describe "#wrap_with_optional_name" do
22
22
  let(:name_made_optional) { true }
23
- let(:wrapped) { mock! }
23
+ let(:wrapped) { double(:wrapped).as_null_object }
24
24
 
25
25
  subject { plugin.send(:wrap_with_optional_name, name_made_optional, wrapped, inputs) }
26
26
 
@@ -28,8 +28,8 @@ describe ManifestsPlugin do
28
28
  let(:inputs_hash) { { :all => true } }
29
29
 
30
30
  it "skips all manifest-related logic, and invokes the command" do
31
- mock(wrapped).call
32
- dont_allow(plugin).show_manifest_usage
31
+ wrapped.should_receive(:call)
32
+ plugin.should_not_receive(:show_manifest_usage)
33
33
  subject
34
34
  end
35
35
  end
@@ -41,8 +41,8 @@ describe ManifestsPlugin do
41
41
  let(:given_hash) { { :app => "foo" } }
42
42
 
43
43
  it "passes through to the command" do
44
- mock(wrapped).call
45
- dont_allow(plugin).show_manifest_usage
44
+ wrapped.should_receive(:call)
45
+ plugin.should_not_receive(:show_manifest_usage)
46
46
  subject
47
47
  end
48
48
  end
@@ -52,7 +52,7 @@ describe ManifestsPlugin do
52
52
 
53
53
  context "and we made it optional" do
54
54
  it "fails manually" do
55
- mock(plugin).no_apps
55
+ plugin.should_receive(:no_apps)
56
56
  subject
57
57
  end
58
58
  end
@@ -61,8 +61,8 @@ describe ManifestsPlugin do
61
61
  let(:name_made_optional) { false }
62
62
 
63
63
  it "passes through to the command" do
64
- mock(wrapped).call
65
- dont_allow(plugin).show_manifest_usage
64
+ wrapped.should_receive(:call)
65
+ plugin.should_not_receive(:show_manifest_usage)
66
66
  subject
67
67
  end
68
68
  end
@@ -73,7 +73,7 @@ describe ManifestsPlugin do
73
73
  let(:manifest_file) { "/abc/manifest.yml" }
74
74
 
75
75
  before do
76
- stub(plugin).show_manifest_usage
76
+ plugin.stub(:show_manifest_usage)
77
77
  end
78
78
 
79
79
  context "when no apps are given" do
@@ -81,11 +81,11 @@ describe ManifestsPlugin do
81
81
  let(:manifest) { { :applications => [{ :name => "foo", :path => "/abc/foo" }] } }
82
82
 
83
83
  it "calls the command for only that app" do
84
- mock(wrapped).call(anything) do |inputs|
84
+ wrapped.should_receive(:call).with(anything) do |inputs|
85
85
  expect(inputs.given[:app]).to eq "foo"
86
86
  end
87
87
 
88
- stub(Dir).pwd { "/abc/foo" }
88
+ Dir.stub(:pwd) { "/abc/foo" }
89
89
 
90
90
  subject
91
91
  end
@@ -96,7 +96,7 @@ describe ManifestsPlugin do
96
96
 
97
97
  it "calls the command for all apps in the manifest" do
98
98
  uncalled_apps = ["foo", "bar"]
99
- mock(wrapped).call(anything).twice do |inputs|
99
+ wrapped.should_receive(:call).with(anything).twice do |inputs|
100
100
  uncalled_apps.delete inputs.given[:app]
101
101
  end
102
102
 
@@ -114,10 +114,10 @@ describe ManifestsPlugin do
114
114
  let(:given_hash) { { :apps => ["x", "a"] } }
115
115
 
116
116
  it "passes through to the original command" do
117
- mock(plugin).show_manifest_usage
117
+ plugin.should_receive(:show_manifest_usage)
118
118
 
119
119
  uncalled_apps = ["a", "x"]
120
- mock(wrapped).call(anything).twice do |inputs|
120
+ wrapped.should_receive(:call).with(anything).twice do |inputs|
121
121
  uncalled_apps.delete inputs.given[:app]
122
122
  end
123
123
 
@@ -136,8 +136,8 @@ describe ManifestsPlugin do
136
136
  let(:given_hash) { { :apps => ["x", "y"] } }
137
137
 
138
138
  it "passes through to the original command" do
139
- dont_allow(plugin).show_manifest_usage
140
- mock(wrapped).call
139
+ wrapped.should_receive(:call)
140
+ plugin.should_not_receive(:show_manifest_usage)
141
141
  subject
142
142
  end
143
143
  end
@@ -148,7 +148,7 @@ describe ManifestsPlugin do
148
148
  let(:given_hash) { { :app => "foo" } }
149
149
 
150
150
  it "calls the command with that app" do
151
- mock(wrapped).call(anything) do |inputs|
151
+ wrapped.should_receive(:call).with(anything) do |inputs|
152
152
  expect(inputs.given[:app]).to eq "foo"
153
153
  end
154
154
 
@@ -161,7 +161,7 @@ describe ManifestsPlugin do
161
161
  let(:given_hash) { { :app => "/abc/foo" } }
162
162
 
163
163
  it "calls the command with that app" do
164
- mock(wrapped).call(anything) do |inputs|
164
+ wrapped.should_receive(:call).with(anything) do |inputs|
165
165
  expect(inputs.given[:app]).to eq "foo"
166
166
  end
167
167
 
@@ -172,13 +172,13 @@ describe ManifestsPlugin do
172
172
  end
173
173
 
174
174
  describe "#wrap_push" do
175
- let(:wrapped) { mock! }
175
+ let(:wrapped) { double(:wrapped).as_null_object }
176
176
  let(:command) { Mothership.commands[:push] }
177
177
 
178
178
  subject { plugin.send(:wrap_push, wrapped, inputs) }
179
179
 
180
180
  before do
181
- stub(plugin).show_manifest_usage
181
+ plugin.stub(:show_manifest_usage)
182
182
  end
183
183
 
184
184
  context "with a manifest" do
@@ -209,7 +209,7 @@ describe ManifestsPlugin do
209
209
  let(:given_hash) { { :name => "a", :instances => "100" } }
210
210
 
211
211
  it "rebases their inputs on the manifest's values" do
212
- mock(wrapped).call(anything) do |inputs|
212
+ wrapped.should_receive(:call).with(anything) do |inputs|
213
213
  expect(inputs.given).to eq(
214
214
  :name => "a", :path => "/abc/a", :instances => "100", :memory => "128M")
215
215
  end
@@ -221,7 +221,7 @@ describe ManifestsPlugin do
221
221
 
222
222
  context "and the app does NOT exist" do
223
223
  it "pushes a new app with the inputs from the manifest" do
224
- mock(wrapped).call(anything) do |inputs|
224
+ wrapped.should_receive(:call).with(anything) do |inputs|
225
225
  expect(inputs.given).to eq(
226
226
  :name => "a", :path => "/abc/a", :instances => "200", :memory => "128M")
227
227
  end
@@ -263,7 +263,7 @@ describe ManifestsPlugin do
263
263
 
264
264
  it "pushes the found apps" do
265
265
  pushed_apps = []
266
- mock(wrapped).call(anything).twice do |inputs|
266
+ wrapped.should_receive(:call).with(anything).twice do |inputs|
267
267
  pushed_apps << inputs[:name]
268
268
  end
269
269
 
@@ -284,12 +284,12 @@ describe ManifestsPlugin do
284
284
  end
285
285
 
286
286
  context "without a manifest" do
287
- let(:app) { mock! }
287
+ let(:app) { double(:app).as_null_object }
288
288
  let(:manifest) { nil }
289
289
 
290
290
  it "asks to save the manifest when uploading the application" do
291
291
  mock_ask("Save configuration?", :default => false)
292
- stub(wrapped).call { plugin.filter(:push_app, app) }
292
+ wrapped.stub(:call) { plugin.filter(:push_app, app) }
293
293
  subject
294
294
  end
295
295
  end
@@ -298,7 +298,7 @@ describe ManifestsPlugin do
298
298
  describe "#push_input_for" do
299
299
  context "with an existing app" do
300
300
  before do
301
- stub(plugin).from_manifest { "PATH" }
301
+ plugin.stub(:from_manifest) { "PATH" }
302
302
  app.changes.clear
303
303
  end
304
304
 
@@ -320,14 +320,14 @@ describe ManifestsPlugin do
320
320
  end
321
321
 
322
322
  it "does not ask to set --reset" do
323
- dont_allow(plugin).warn_reset_changes
323
+ plugin.should_not_receive(:warn_reset_changes)
324
324
  subject
325
325
  end
326
326
  end
327
327
 
328
328
  context "without changes" do
329
329
  it "does not ask to set --reset" do
330
- dont_allow(plugin).warn_reset_changes
330
+ plugin.should_not_receive(:warn_reset_changes)
331
331
  subject
332
332
  end
333
333
  end
@@ -340,19 +340,19 @@ describe ManifestsPlugin do
340
340
  let(:manifest_memory) { "128M" }
341
341
 
342
342
  it "asks user to provide --reset" do
343
- mock(plugin).warn_reset_changes
343
+ plugin.should_receive(:warn_reset_changes)
344
344
  subject
345
345
  end
346
346
 
347
347
  it "does not apply changes" do
348
- stub(plugin).warn_reset_changes
348
+ plugin.stub(:warn_reset_changes)
349
349
  subject[:memory].should == nil
350
350
  end
351
351
  end
352
352
 
353
353
  context "without changes" do
354
354
  it "does not ask to set --reset" do
355
- dont_allow(plugin).warn_reset_changes
355
+ plugin.should_not_receive(:warn_reset_changes)
356
356
  subject
357
357
  end
358
358
  end