cf 1.1.4 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/cf/cli/start/login.rb +3 -0
- data/lib/cf/version.rb +1 -1
- data/spec/cf/cli/app/base_spec.rb +2 -2
- data/spec/cf/cli/app/delete_spec.rb +150 -129
- data/spec/cf/cli/app/instances_spec.rb +56 -51
- data/spec/cf/cli/app/push/create_spec.rb +72 -70
- data/spec/cf/cli/app/push_spec.rb +46 -43
- data/spec/cf/cli/app/rename_spec.rb +13 -6
- data/spec/cf/cli/app/scale_spec.rb +9 -4
- data/spec/cf/cli/app/start_spec.rb +28 -23
- data/spec/cf/cli/app/stats_spec.rb +9 -10
- data/spec/cf/cli/domain/map_spec.rb +13 -10
- data/spec/cf/cli/domain/unmap_spec.rb +11 -11
- data/spec/cf/cli/organization/delete_spec.rb +10 -4
- data/spec/cf/cli/organization/orgs_spec.rb +15 -4
- data/spec/cf/cli/organization/rename_spec.rb +7 -5
- data/spec/cf/cli/populators/organization_spec.rb +40 -29
- data/spec/cf/cli/populators/space_spec.rb +51 -40
- data/spec/cf/cli/populators/target_spec.rb +4 -2
- data/spec/cf/cli/route/delete_spec.rb +6 -4
- data/spec/cf/cli/route/map_spec.rb +54 -35
- data/spec/cf/cli/route/unmap_spec.rb +21 -15
- data/spec/cf/cli/service/create_spec.rb +17 -12
- data/spec/cf/cli/service/rename_spec.rb +8 -6
- data/spec/cf/cli/service/services_spec.rb +15 -8
- data/spec/cf/cli/space/create_spec.rb +5 -9
- data/spec/cf/cli/space/delete_spec.rb +9 -8
- data/spec/cf/cli/space/rename_spec.rb +15 -8
- data/spec/cf/cli/space/space_spec.rb +10 -10
- data/spec/cf/cli/space/spaces_spec.rb +11 -5
- data/spec/cf/cli/space/switch_space_spec.rb +7 -7
- data/spec/cf/cli/start/info_spec.rb +3 -1
- data/spec/cf/cli/start/login_spec.rb +1 -1
- data/spec/cf/cli/start/logout_spec.rb +1 -1
- data/spec/cf/cli/start/target_spec.rb +7 -6
- data/spec/cf/cli/user/create_spec.rb +3 -4
- data/spec/cf/cli/user/passwd_spec.rb +2 -4
- data/spec/cf/cli/user/register_spec.rb +4 -4
- data/spec/cf/cli_spec.rb +1 -3
- data/spec/factories/cfoundry/v2/apps_factory.rb +12 -0
- data/spec/factories/cfoundry/v2/clients_factory.rb +4 -0
- data/spec/factories/cfoundry/v2/{domain_factory.rb → domains_factory.rb} +0 -0
- data/spec/factories/cfoundry/v2/organizations_factory.rb +12 -0
- data/spec/factories/cfoundry/v2/{route_factory.rb → routes_factory.rb} +0 -0
- data/spec/factories/cfoundry/v2/service_bindings_factory.rb +11 -0
- data/spec/factories/cfoundry/v2/service_instances_factory.rb +12 -0
- data/spec/factories/cfoundry/v2/service_plans_factory.rb +13 -0
- data/spec/factories/cfoundry/v2/services_factory.rb +14 -0
- data/spec/factories/cfoundry/v2/spaces_factory.rb +12 -0
- data/spec/factories/cfoundry/v2/stacks_factory.rb +11 -0
- data/spec/factories/cfoundry/v2/{user_factory.rb → users_factory.rb} +0 -0
- data/spec/features/push_flow_spec.rb +8 -8
- data/spec/manifests/manifests_spec.rb +34 -51
- data/spec/manifests/plugin_spec.rb +17 -6
- data/spec/spec_helper.rb +0 -1
- data/spec/support/interact_helper.rb +1 -1
- data/spec/tunnel/tunnel_spec.rb +5 -5
- metadata +37 -13
@@ -5,11 +5,16 @@ describe CF::Route::Unmap do
|
|
5
5
|
stub_client_and_precondition
|
6
6
|
end
|
7
7
|
|
8
|
-
let(:client)
|
8
|
+
let(:client) do
|
9
|
+
build(:client).tap do |client|
|
10
|
+
client.stub(:apps).and_return([app])
|
11
|
+
client.stub(:apps_by_name).and_return([app])
|
12
|
+
end
|
13
|
+
end
|
9
14
|
|
10
|
-
let(:app){
|
11
|
-
let(:space) {
|
12
|
-
let(:domain) {
|
15
|
+
let(:app){ build(:app, :space => space, :name => "app-name") }
|
16
|
+
let(:space) { build(:space, :name => "space-name", :domains => space_domains) }
|
17
|
+
let(:domain) { build(:domain, :name => domain_name ) }
|
13
18
|
let(:domain_name) { "some-domain.com" }
|
14
19
|
let(:host_name) { "some-host" }
|
15
20
|
let(:url) { "#{host_name}.#{domain_name}" }
|
@@ -38,8 +43,8 @@ describe CF::Route::Unmap do
|
|
38
43
|
subject { cf %W[unmap #{url} #{app.name}] }
|
39
44
|
|
40
45
|
context "when the given route is mapped to the given app" do
|
41
|
-
let(:app) {
|
42
|
-
let(:route) {
|
46
|
+
let(:app) { build(:app, :space => space, :name => "app-name", :routes => [route]) }
|
47
|
+
let(:route) { build(:route, :space => space, :host => host_name, :domain => domain) }
|
43
48
|
|
44
49
|
it "unmaps the url from the app" do
|
45
50
|
app.should_receive(:remove_route).with(route)
|
@@ -49,6 +54,7 @@ describe CF::Route::Unmap do
|
|
49
54
|
|
50
55
|
context "when the given route is NOT mapped to the given app" do
|
51
56
|
it "displays an error" do
|
57
|
+
app.stub(:routes).and_return([])
|
52
58
|
subject
|
53
59
|
expect(error_output).to say("Unknown route")
|
54
60
|
end
|
@@ -56,14 +62,14 @@ describe CF::Route::Unmap do
|
|
56
62
|
end
|
57
63
|
|
58
64
|
context "when only an app is specified" do
|
59
|
-
let(:other_route) {
|
60
|
-
let(:route) {
|
61
|
-
let(:app) {
|
65
|
+
let(:other_route) { build(:route, :host => "abcd", :domain => domain) }
|
66
|
+
let(:route) { build(:route, :host => "efgh", :domain => domain) }
|
67
|
+
let(:app) { build(:app, :space => space, :routes => [route, other_route] )}
|
62
68
|
|
63
69
|
subject { cf %W[unmap --app #{app.name}] }
|
64
70
|
|
65
71
|
it "asks the user to select from the app's urls" do
|
66
|
-
|
72
|
+
should_ask("Which URL?", anything) do |_, opts|
|
67
73
|
expect(opts[:choices]).to eq [other_route, route]
|
68
74
|
route
|
69
75
|
end
|
@@ -81,9 +87,9 @@ describe CF::Route::Unmap do
|
|
81
87
|
end
|
82
88
|
|
83
89
|
context "when an app is specified and the --all option is given" do
|
84
|
-
let(:other_route) {
|
85
|
-
let(:route) {
|
86
|
-
let(:app) {
|
90
|
+
let(:other_route) { build(:route, :host => "abcd", :domain => domain) }
|
91
|
+
let(:route) { build(:route, :host => "efgh", :domain => domain) }
|
92
|
+
let(:app) { build(:app, :routes => [route, other_route]) }
|
87
93
|
|
88
94
|
subject { cf %W[unmap --all --app #{app.name}] }
|
89
95
|
|
@@ -95,8 +101,8 @@ describe CF::Route::Unmap do
|
|
95
101
|
end
|
96
102
|
|
97
103
|
context "when only a url is passed" do
|
98
|
-
let(:route) {
|
99
|
-
|
104
|
+
let(:route) { build(:route, :host => host_name, :domain => domain) }
|
105
|
+
before { client.stub(:routes).and_return([route]) }
|
100
106
|
|
101
107
|
subject { cf %W[unmap #{url}] }
|
102
108
|
|
@@ -3,6 +3,12 @@ require "spec_helper"
|
|
3
3
|
module CF
|
4
4
|
module Service
|
5
5
|
describe Create do
|
6
|
+
let(:client) { build(:client) }
|
7
|
+
|
8
|
+
before do
|
9
|
+
stub_client_and_precondition
|
10
|
+
end
|
11
|
+
|
6
12
|
describe "metadata" do
|
7
13
|
let(:command) { Mothership.commands[:create_service] }
|
8
14
|
|
@@ -23,23 +29,22 @@ module CF
|
|
23
29
|
end
|
24
30
|
|
25
31
|
context "when there are services" do
|
26
|
-
let(:service_plan) {
|
27
|
-
let(:selected_service) {
|
32
|
+
let(:service_plan) { build(:service_plan, :name => "F20") }
|
33
|
+
let(:selected_service) { build(:service, :label => "Foo Service", :service_plans => [service_plan]) }
|
28
34
|
let(:command) { Mothership.new.invoke(:create_service, params, {}) }
|
29
|
-
let(:client) { fake_client(:services => services) }
|
30
35
|
let(:params) { {} }
|
31
36
|
|
32
37
|
before do
|
33
|
-
|
38
|
+
client.stub(:services).and_return(services)
|
34
39
|
end
|
35
40
|
|
36
41
|
describe "when there is at least one service" do
|
37
42
|
let(:services) { [selected_service] }
|
38
43
|
|
39
44
|
it "asks for the service" do
|
40
|
-
|
41
|
-
|
42
|
-
|
45
|
+
should_ask("What kind?", anything) { selected_service }
|
46
|
+
should_ask("Name?", anything) { selected_service.label }
|
47
|
+
should_ask("Which plan?", anything) { service_plan }
|
43
48
|
CFoundry::V2::ServiceInstance.any_instance.stub(:create!)
|
44
49
|
|
45
50
|
capture_output { command }
|
@@ -47,12 +52,12 @@ module CF
|
|
47
52
|
end
|
48
53
|
|
49
54
|
describe "when there are more than one services" do
|
50
|
-
let(:services) { [selected_service,
|
55
|
+
let(:services) { [selected_service, build(:service), build(:service)] }
|
51
56
|
|
52
57
|
it "asks for the service" do
|
53
|
-
|
54
|
-
|
55
|
-
|
58
|
+
should_ask("What kind?", anything) { selected_service }
|
59
|
+
should_ask("Name?", anything) { selected_service.label }
|
60
|
+
should_ask("Which plan?", anything) { service_plan }
|
56
61
|
CFoundry::V2::ServiceInstance.any_instance.stub(:create!)
|
57
62
|
|
58
63
|
capture_output { command }
|
@@ -75,7 +80,7 @@ module CF
|
|
75
80
|
end
|
76
81
|
|
77
82
|
describe "when entering command line options" do
|
78
|
-
let(:service_plan) {
|
83
|
+
let(:service_plan) { build(:service_plan, :name => "f20") }
|
79
84
|
let(:params) { {
|
80
85
|
:name => "my-service-name",
|
81
86
|
:offering => selected_service,
|
@@ -4,14 +4,17 @@ describe CF::Service::Rename do
|
|
4
4
|
let(:global) { { :color => false, :quiet => true } }
|
5
5
|
let(:inputs) { {} }
|
6
6
|
let(:given) { {} }
|
7
|
-
let(:client) {
|
7
|
+
let(:client) { build(:client) }
|
8
8
|
let(:service) {}
|
9
|
+
let(:services) { [] }
|
9
10
|
let(:new_name) { "some-new-name" }
|
10
11
|
|
11
12
|
subject { Mothership.new.invoke(:rename_service, inputs, given, global) }
|
12
13
|
|
13
14
|
before do
|
14
15
|
CF::CLI.any_instance.stub(:client).and_return(client)
|
16
|
+
client.stub(:service_instances => services)
|
17
|
+
client.stub(:service_instances_by_name => services)
|
15
18
|
end
|
16
19
|
|
17
20
|
describe "metadata" do
|
@@ -48,14 +51,13 @@ describe CF::Service::Rename do
|
|
48
51
|
end
|
49
52
|
|
50
53
|
context "when there are services" do
|
51
|
-
let(:
|
52
|
-
let(:services) { fake_list(:service_instance, 2) }
|
54
|
+
let(:services) { Array.new(2) { build(:service_instance) } }
|
53
55
|
let(:renamed_service) { services.first }
|
54
56
|
|
55
57
|
context "when the defaults are used" do
|
56
58
|
it "asks for the service and new name and renames" do
|
57
|
-
|
58
|
-
|
59
|
+
should_ask("Rename which service?", anything) { renamed_service }
|
60
|
+
should_ask("New name") { new_name }
|
59
61
|
renamed_service.should_receive(:name=).with(new_name)
|
60
62
|
renamed_service.should_receive(:update!)
|
61
63
|
subject
|
@@ -67,7 +69,7 @@ describe CF::Service::Rename do
|
|
67
69
|
|
68
70
|
it "asks for the new name and renames" do
|
69
71
|
dont_allow_ask("Rename which service?", anything)
|
70
|
-
|
72
|
+
should_ask("New name") { new_name }
|
71
73
|
renamed_service.should_receive(:name=).with(new_name)
|
72
74
|
renamed_service.should_receive(:update!)
|
73
75
|
subject
|
@@ -33,20 +33,27 @@ module CF
|
|
33
33
|
let(:global) { {:color => false} }
|
34
34
|
let(:inputs) { {} }
|
35
35
|
let(:given) { {} }
|
36
|
-
let(:client)
|
36
|
+
let(:client) do
|
37
|
+
build(:client).tap do |client|
|
38
|
+
client.stub(:current_space => current_space, :service_instances => service_instances)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
let(:app) { build(:app) }
|
37
42
|
|
38
|
-
let(:service_plan) {
|
39
|
-
let(:
|
43
|
+
let(:service_plan) { build(:service_plan, :service => build(:service, :version => "service_version", :provider => "provider")) }
|
44
|
+
let(:service_binding) { build(:service_binding, :app => app) }
|
45
|
+
let(:service1) { build(:service_instance, :service_plan => service_plan, :service_bindings => [service_binding]) }
|
40
46
|
|
41
47
|
let(:service_instances) { [service1] }
|
42
|
-
let(:current_space) {
|
48
|
+
let(:current_space) { build(:space, :name => "the space") }
|
43
49
|
|
44
50
|
subject do
|
45
51
|
capture_output { Mothership.new.invoke(:services, inputs, given, global) }
|
46
52
|
end
|
47
53
|
|
48
54
|
before do
|
49
|
-
|
55
|
+
stub_client_and_precondition
|
56
|
+
client.stub(:service_bindings).and_return([service_binding])
|
50
57
|
end
|
51
58
|
|
52
59
|
it "produces a table of services" do
|
@@ -57,12 +64,12 @@ module CF
|
|
57
64
|
expect(output).to match /Getting services in the space.*OK/
|
58
65
|
|
59
66
|
expect(output).to match /name\s+service\s+provider\s+version\s+plan\s+bound apps/
|
60
|
-
expect(output).to match /
|
67
|
+
expect(output).to match /service-instance-.+?\s+ # name
|
61
68
|
service-.*?\s+ # service
|
62
69
|
provider.*?\s+ # provider
|
63
70
|
service_version\s+ # version
|
64
|
-
|
65
|
-
|
71
|
+
service-plan-.*?\s+ # plan
|
72
|
+
app-name-\d+\s+ # bound apps
|
66
73
|
/x
|
67
74
|
|
68
75
|
end
|
@@ -3,6 +3,9 @@ require "spec_helper"
|
|
3
3
|
module CF
|
4
4
|
module Space
|
5
5
|
describe Create do
|
6
|
+
let(:client) { build(:client) }
|
7
|
+
before { stub_client_and_precondition }
|
8
|
+
|
6
9
|
describe "metadata" do
|
7
10
|
let(:command) { Mothership.commands[:create_space] }
|
8
11
|
|
@@ -26,13 +29,8 @@ module CF
|
|
26
29
|
end
|
27
30
|
|
28
31
|
describe "running the command" do
|
29
|
-
let(:new_space) {
|
30
|
-
let(:
|
31
|
-
|
32
|
-
let(:spaces) { [new_space] }
|
33
|
-
let(:organization) { fake(:organization, :spaces => spaces) }
|
34
|
-
|
35
|
-
let(:client) { fake_client(:current_organization => organization, :spaces => spaces) }
|
32
|
+
let(:new_space) { build(:space) }
|
33
|
+
let(:organization) { build(:organization, :spaces => [new_space]) }
|
36
34
|
|
37
35
|
before do
|
38
36
|
client.stub(:space).and_return(new_space)
|
@@ -40,8 +38,6 @@ module CF
|
|
40
38
|
new_space.stub(:add_manager)
|
41
39
|
new_space.stub(:add_developer)
|
42
40
|
new_space.stub(:add_auditor)
|
43
|
-
described_class.any_instance.stub(:client).and_return(client)
|
44
|
-
described_class.any_instance.stub(:precondition).and_return(nil)
|
45
41
|
CF::Populators::Organization.any_instance.stub(:populate_and_save!).and_return(organization)
|
46
42
|
CF::Populators::Organization.any_instance.stub(:choices).and_return([organization])
|
47
43
|
end
|
@@ -3,6 +3,9 @@ require "spec_helper"
|
|
3
3
|
module CF
|
4
4
|
module Space
|
5
5
|
describe Delete do
|
6
|
+
let(:client) { build(:client) }
|
7
|
+
before { stub_client_and_precondition }
|
8
|
+
|
6
9
|
describe "metadata" do
|
7
10
|
let(:command) { Mothership.commands[:delete_space] }
|
8
11
|
|
@@ -16,26 +19,24 @@ module CF
|
|
16
19
|
end
|
17
20
|
|
18
21
|
describe "running the command" do
|
19
|
-
let(:space) {
|
20
|
-
let(:organization) {
|
21
|
-
let(:client) { fake_client(:current_organization => organization, :spaces => [space]) }
|
22
|
+
let(:space) { build :space, :name => "some_space_name" }
|
23
|
+
let(:organization) { build(:organization, :spaces => [space], :name => "MyOrg") }
|
22
24
|
|
23
25
|
subject { capture_output { cf %W[delete-space some_space_name --quiet --force] } }
|
24
26
|
|
25
27
|
before do
|
26
|
-
described_class.any_instance.stub(:client) { client }
|
27
|
-
described_class.any_instance.stub(:precondition)
|
28
28
|
CF::Populators::Organization.any_instance.stub(:populate_and_save!).and_return(organization)
|
29
|
+
organization.stub(:spaces_by_name).with("some_space_name").and_return([space])
|
29
30
|
space.stub(:delete!)
|
30
31
|
end
|
31
32
|
|
32
|
-
|
33
33
|
context "without the force parameter when prompting" do
|
34
34
|
subject { cf %W[delete-space some_space_name --quiet] }
|
35
|
+
|
35
36
|
context "when the user responds 'y'" do
|
36
37
|
it "deletes the space, exits cleanly" do
|
37
38
|
space.should_receive(:delete!)
|
38
|
-
|
39
|
+
should_ask("Really delete #{space.name}?", {:default => false}) { true }
|
39
40
|
|
40
41
|
subject
|
41
42
|
@status.should == 0
|
@@ -45,7 +46,7 @@ module CF
|
|
45
46
|
context "when the user responds 'n'" do
|
46
47
|
it "exits cleanly without deleting the space" do
|
47
48
|
space.should_not_receive(:delete!)
|
48
|
-
|
49
|
+
should_ask("Really delete #{space.name}?", {:default => false}) { false }
|
49
50
|
|
50
51
|
subject
|
51
52
|
@status.should == 0
|
@@ -3,14 +3,13 @@ require "spec_helper"
|
|
3
3
|
module CF
|
4
4
|
module Space
|
5
5
|
describe Rename do
|
6
|
-
let(:
|
7
|
-
let(:
|
8
|
-
let(:
|
6
|
+
let(:client) { build(:client) }
|
7
|
+
let(:spaces) { Array.new(3){ build(:space) } }
|
8
|
+
let(:organization) { build(:organization, :spaces => spaces) }
|
9
9
|
let(:new_name) { "some-new-name" }
|
10
10
|
|
11
11
|
before do
|
12
|
-
|
13
|
-
described_class.any_instance.stub(:precondition)
|
12
|
+
stub_client_and_precondition
|
14
13
|
CF::Populators::Organization.any_instance.stub(:populate_and_save!).and_return(organization)
|
15
14
|
end
|
16
15
|
|
@@ -39,6 +38,10 @@ module CF
|
|
39
38
|
context "when there are no spaces" do
|
40
39
|
let(:spaces) { [] }
|
41
40
|
|
41
|
+
before do
|
42
|
+
client.stub(:spaces_by_name).with("some-invalid-space").and_return(spaces)
|
43
|
+
end
|
44
|
+
|
42
45
|
context "and a space is given" do
|
43
46
|
subject { cf %W[rename-space --space some-invalid-space --no-force --no-quiet] }
|
44
47
|
it "prints out an error message" do
|
@@ -60,10 +63,14 @@ module CF
|
|
60
63
|
let(:renamed_space) { spaces.first }
|
61
64
|
subject { cf %W[rename-space --no-force --no-quiet] }
|
62
65
|
|
66
|
+
before do
|
67
|
+
client.stub(:spaces_by_name).with(renamed_space.name).and_return(spaces)
|
68
|
+
end
|
69
|
+
|
63
70
|
context "when the defaults are used" do
|
64
71
|
it "asks for the space and new name and renames" do
|
65
|
-
|
66
|
-
|
72
|
+
should_ask("Rename which space?", anything) { renamed_space }
|
73
|
+
should_ask("New name") { new_name }
|
67
74
|
renamed_space.should_receive(:name=).with(new_name)
|
68
75
|
renamed_space.should_receive(:update!)
|
69
76
|
subject
|
@@ -75,7 +82,7 @@ module CF
|
|
75
82
|
|
76
83
|
it "asks for the new name and renames" do
|
77
84
|
dont_allow_ask("Rename which space?", anything)
|
78
|
-
|
85
|
+
should_ask("New name") { new_name }
|
79
86
|
renamed_space.should_receive(:name=).with(new_name)
|
80
87
|
renamed_space.should_receive(:update!)
|
81
88
|
subject
|
@@ -25,19 +25,19 @@ module CF
|
|
25
25
|
end
|
26
26
|
|
27
27
|
describe "running the command" do
|
28
|
-
let(:
|
29
|
-
|
30
|
-
let(:
|
31
|
-
let
|
32
|
-
let(:
|
33
|
-
let(:
|
34
|
-
let(:
|
28
|
+
let(:client) { build(:client) }
|
29
|
+
|
30
|
+
let(:apps) { Array.new(2) { build(:app) } }
|
31
|
+
let(:domains) { Array.new(2) { build(:domain) } }
|
32
|
+
let(:services) { Array.new(2) { build(:service_instance) } }
|
33
|
+
let(:space) { build(:space, :name => "some_space_name", :apps => apps, :service_instances => services, :domains => domains, :organization => organization ) }
|
34
|
+
let(:spaces) { [space] }
|
35
|
+
let(:organization) { build(:organization, :name => "Spacey Org") }
|
35
36
|
|
36
37
|
before do
|
37
|
-
|
38
|
-
CF::Space::Base.any_instance.stub(:precondition)
|
38
|
+
stub_client_and_precondition
|
39
39
|
CF::Populators::Organization.any_instance.stub(:populate_and_save!).and_return(organization)
|
40
|
-
CF::Populators::Space.any_instance.stub(:populate_and_save!).and_return(
|
40
|
+
CF::Populators::Space.any_instance.stub(:populate_and_save!).and_return(space)
|
41
41
|
end
|
42
42
|
|
43
43
|
context "with --quiet" do
|
@@ -4,16 +4,22 @@ module CF
|
|
4
4
|
module Space
|
5
5
|
describe Spaces do
|
6
6
|
let(:full) { false }
|
7
|
-
let
|
8
|
-
let!(:
|
9
|
-
let!(:
|
7
|
+
let(:app) { build(:app) }
|
8
|
+
let!(:space_1) { build(:space, :name => "bb_second", :apps => [app], :service_instances => [build(:service_instance)]) }
|
9
|
+
let!(:space_2) { build(:space, :name => "aa_first", :apps => [app], :service_instances => [build(:service_instance)], :domains => [build(:domain)]) }
|
10
|
+
let!(:space_3) { build(:space, :name => "cc_last", :apps => [app], :service_instances => [build(:service_instance)], :domains => [build(:domain)]) }
|
10
11
|
let(:spaces) { [space_1, space_2, space_3] }
|
11
|
-
let(:organization) {
|
12
|
-
let(:client)
|
12
|
+
let(:organization) { build(:organization, :spaces => spaces, :name => "foo") }
|
13
|
+
let(:client) do
|
14
|
+
build(:client).tap do |client|
|
15
|
+
client.stub(:spaces => spaces, :current_organization => organization)
|
16
|
+
end
|
17
|
+
end
|
13
18
|
|
14
19
|
before do
|
15
20
|
stub_client_and_precondition
|
16
21
|
CF::Populators::Organization.any_instance.stub(:populate_and_save!).and_return(organization)
|
22
|
+
organization.stub(:spaces).and_return(spaces)
|
17
23
|
end
|
18
24
|
|
19
25
|
describe "metadata" do
|
@@ -4,13 +4,12 @@ module CF
|
|
4
4
|
module Space
|
5
5
|
describe Switch do
|
6
6
|
let(:space_to_switch_to) { spaces.last }
|
7
|
-
let(:spaces) {
|
8
|
-
let(:organization) {
|
9
|
-
let(:client) {
|
7
|
+
let(:spaces) { Array.new(3) { build(:space) } }
|
8
|
+
let(:organization) { build(:organization, :spaces => spaces) }
|
9
|
+
let(:client) { build(:client) }
|
10
10
|
|
11
11
|
before do
|
12
|
-
|
13
|
-
CF::Space::Base.any_instance.stub(:precondition)
|
12
|
+
stub_client_and_precondition
|
14
13
|
CF::Populators::Organization.any_instance.stub(:populate_and_save!).and_return(organization)
|
15
14
|
end
|
16
15
|
|
@@ -38,6 +37,7 @@ module CF
|
|
38
37
|
context "when the space exists" do
|
39
38
|
before do
|
40
39
|
Mothership.any_instance.should_receive(:invoke).with(:target, {:space => space_to_switch_to})
|
40
|
+
client.stub(:spaces_by_name).with(space_to_switch_to.name).and_return([space_to_switch_to])
|
41
41
|
end
|
42
42
|
|
43
43
|
it "switches to that space" do
|
@@ -46,11 +46,11 @@ module CF
|
|
46
46
|
end
|
47
47
|
|
48
48
|
context "when the space does not exist" do
|
49
|
-
|
49
|
+
before { client.stub(:spaces_by_name).with(space_to_switch_to.name).and_return([]) }
|
50
50
|
|
51
51
|
it_behaves_like "an error that gets passed through",
|
52
52
|
:with_exception => CF::UserError,
|
53
|
-
:with_message =>
|
53
|
+
:with_message => /The space .* does not exist, please create the space first/
|
54
54
|
end
|
55
55
|
end
|
56
56
|
end
|