cf 1.1.4 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. data/lib/cf/cli/start/login.rb +3 -0
  2. data/lib/cf/version.rb +1 -1
  3. data/spec/cf/cli/app/base_spec.rb +2 -2
  4. data/spec/cf/cli/app/delete_spec.rb +150 -129
  5. data/spec/cf/cli/app/instances_spec.rb +56 -51
  6. data/spec/cf/cli/app/push/create_spec.rb +72 -70
  7. data/spec/cf/cli/app/push_spec.rb +46 -43
  8. data/spec/cf/cli/app/rename_spec.rb +13 -6
  9. data/spec/cf/cli/app/scale_spec.rb +9 -4
  10. data/spec/cf/cli/app/start_spec.rb +28 -23
  11. data/spec/cf/cli/app/stats_spec.rb +9 -10
  12. data/spec/cf/cli/domain/map_spec.rb +13 -10
  13. data/spec/cf/cli/domain/unmap_spec.rb +11 -11
  14. data/spec/cf/cli/organization/delete_spec.rb +10 -4
  15. data/spec/cf/cli/organization/orgs_spec.rb +15 -4
  16. data/spec/cf/cli/organization/rename_spec.rb +7 -5
  17. data/spec/cf/cli/populators/organization_spec.rb +40 -29
  18. data/spec/cf/cli/populators/space_spec.rb +51 -40
  19. data/spec/cf/cli/populators/target_spec.rb +4 -2
  20. data/spec/cf/cli/route/delete_spec.rb +6 -4
  21. data/spec/cf/cli/route/map_spec.rb +54 -35
  22. data/spec/cf/cli/route/unmap_spec.rb +21 -15
  23. data/spec/cf/cli/service/create_spec.rb +17 -12
  24. data/spec/cf/cli/service/rename_spec.rb +8 -6
  25. data/spec/cf/cli/service/services_spec.rb +15 -8
  26. data/spec/cf/cli/space/create_spec.rb +5 -9
  27. data/spec/cf/cli/space/delete_spec.rb +9 -8
  28. data/spec/cf/cli/space/rename_spec.rb +15 -8
  29. data/spec/cf/cli/space/space_spec.rb +10 -10
  30. data/spec/cf/cli/space/spaces_spec.rb +11 -5
  31. data/spec/cf/cli/space/switch_space_spec.rb +7 -7
  32. data/spec/cf/cli/start/info_spec.rb +3 -1
  33. data/spec/cf/cli/start/login_spec.rb +1 -1
  34. data/spec/cf/cli/start/logout_spec.rb +1 -1
  35. data/spec/cf/cli/start/target_spec.rb +7 -6
  36. data/spec/cf/cli/user/create_spec.rb +3 -4
  37. data/spec/cf/cli/user/passwd_spec.rb +2 -4
  38. data/spec/cf/cli/user/register_spec.rb +4 -4
  39. data/spec/cf/cli_spec.rb +1 -3
  40. data/spec/factories/cfoundry/v2/apps_factory.rb +12 -0
  41. data/spec/factories/cfoundry/v2/clients_factory.rb +4 -0
  42. data/spec/factories/cfoundry/v2/{domain_factory.rb → domains_factory.rb} +0 -0
  43. data/spec/factories/cfoundry/v2/organizations_factory.rb +12 -0
  44. data/spec/factories/cfoundry/v2/{route_factory.rb → routes_factory.rb} +0 -0
  45. data/spec/factories/cfoundry/v2/service_bindings_factory.rb +11 -0
  46. data/spec/factories/cfoundry/v2/service_instances_factory.rb +12 -0
  47. data/spec/factories/cfoundry/v2/service_plans_factory.rb +13 -0
  48. data/spec/factories/cfoundry/v2/services_factory.rb +14 -0
  49. data/spec/factories/cfoundry/v2/spaces_factory.rb +12 -0
  50. data/spec/factories/cfoundry/v2/stacks_factory.rb +11 -0
  51. data/spec/factories/cfoundry/v2/{user_factory.rb → users_factory.rb} +0 -0
  52. data/spec/features/push_flow_spec.rb +8 -8
  53. data/spec/manifests/manifests_spec.rb +34 -51
  54. data/spec/manifests/plugin_spec.rb +17 -6
  55. data/spec/spec_helper.rb +0 -1
  56. data/spec/support/interact_helper.rb +1 -1
  57. data/spec/tunnel/tunnel_spec.rb +5 -5
  58. metadata +37 -13
@@ -5,7 +5,9 @@ describe CF::Start::Info do
5
5
  let(:all) { false }
6
6
 
7
7
  let(:client) do
8
- fake_client :services => fake_list(:service, 3), :token => CFoundry::AuthToken.new("bearer some-access-token")
8
+ build(:client).tap do |client|
9
+ client.stub(:services => Array.new(3) { build(:service) })
10
+ end
9
11
  end
10
12
 
11
13
  let(:target_info) do
@@ -1,7 +1,7 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe CF::Start::Login do
4
- let(:client) { fake_client }
4
+ let(:client) { build(:client) }
5
5
 
6
6
  describe "metadata" do
7
7
  before do
@@ -3,7 +3,7 @@ require "spec_helper"
3
3
  module CF
4
4
  module Start
5
5
  describe Logout do
6
- let(:client) { fake_client }
6
+ let(:client) { build(:client) }
7
7
 
8
8
  before do
9
9
  described_class.any_instance.stub(:client) { client }
@@ -7,8 +7,8 @@ module CF
7
7
  stub_client_and_precondition
8
8
  end
9
9
 
10
- let(:client) { fake_client :apps => [app] }
11
- let(:app) { fake :app }
10
+ let(:client) { build(:client).tap {|client| client.stub(:apps => [app]) } }
11
+ let(:app) { build(:app) }
12
12
 
13
13
  describe "metadata" do
14
14
  let(:command) { Mothership.commands[:target] }
@@ -41,12 +41,13 @@ module CF
41
41
  stub_home_dir_with { "#{SPEC_ROOT}/fixtures/fake_home_dirs/new" }
42
42
 
43
43
  context "when the user is authenticated and has an organization" do
44
- let(:user) { fake(:user) }
45
- let(:organization) { fake(:organization, :name => "My Org", :guid => "organization-id-1", :users => [user], :spaces => [space]) }
46
- let(:space) { fake(:space, :name => "Staging", :guid => "space-id-2", :developers => [user]) }
47
- let(:client) { fake_client :organizations => [organization], :token => CFoundry::AuthToken.new("bearer some-access-token") }
44
+ let(:user) { build(:user) }
45
+ let(:organization) { build(:organization, :name => "My Org", :guid => "organization-id-1", :users => [user], :spaces => [space]) }
46
+ let(:space) { build(:space, :name => "Staging", :guid => "space-id-2", :developers => [user]) }
48
47
 
49
48
  before do
49
+ client.stub(:logged_in?) { true }
50
+ client.stub(:organizations) { [organization] }
50
51
  client.stub(:current_user) { user }
51
52
  client.stub(:organization) { organization }
52
53
  client.stub(:current_organization) { organization }
@@ -25,9 +25,9 @@ module CF
25
25
  end
26
26
 
27
27
  describe "running the command" do
28
- let(:client) { fake_client }
29
- let(:org) { fake(:organization) }
30
- let(:user) { fake(:user) }
28
+ let(:client) { build(:client) }
29
+ let(:org) { build(:organization) }
30
+ let(:user) { build(:user) }
31
31
 
32
32
  before do
33
33
  stub_client
@@ -90,7 +90,6 @@ module CF
90
90
  user.managed_organizations.should == [org]
91
91
  user.audited_organizations.should == [org]
92
92
  end
93
-
94
93
  end
95
94
  end
96
95
  end
@@ -16,15 +16,13 @@ module CF
16
16
  end
17
17
 
18
18
  describe "#passwd" do
19
- let(:client) { fake_client }
19
+ let(:client) { build(:client) }
20
20
  let(:old_password) { "old" }
21
21
  let(:new_password) { "password" }
22
22
  let(:verify_password) { new_password }
23
23
  let(:score) { :strong }
24
24
  let(:guid) { random_string("my-object-guid") }
25
- let(:user_model) { fake_model { attribute :password, :object } }
26
- let(:user_object) { user_model.new(guid, client) }
27
- let(:user) { user_object.fake(:password => "foo") }
25
+ let(:user) { build(:user) }
28
26
 
29
27
  before do
30
28
  stub_client_and_precondition
@@ -3,7 +3,7 @@ require "spec_helper"
3
3
  module CF
4
4
  module User
5
5
  describe Register do
6
- let(:client) { fake_client }
6
+ let(:client) { build(:client) }
7
7
 
8
8
  before do
9
9
  stub_client_and_precondition
@@ -133,9 +133,9 @@ module CF
133
133
  subject { cf %W[register --no-force --no-login] }
134
134
 
135
135
  it "asks for the email, password and confirm password" do
136
- mock_ask("Email") { email }
137
- mock_ask("Password", anything) { password }
138
- mock_ask("Confirm Password", anything) { verify_password }
136
+ should_ask("Email") { email }
137
+ should_ask("Password", anything) { password }
138
+ should_ask("Confirm Password", anything) { verify_password }
139
139
  subject
140
140
  end
141
141
  end
data/spec/cf/cli_spec.rb CHANGED
@@ -152,7 +152,7 @@ module CF
152
152
 
153
153
  describe "#execute" do
154
154
  let(:inputs) { {} }
155
- let(:client) { fake_client }
155
+ let(:client) { build(:client) }
156
156
 
157
157
  before do
158
158
  stub_client
@@ -179,8 +179,6 @@ module CF
179
179
  def precondition;
180
180
  end
181
181
 
182
- desc "XXX"
183
-
184
182
  def refresh_token
185
183
  if client
186
184
  client.token = self.class.new_token
@@ -0,0 +1,12 @@
1
+ FactoryGirl.define do
2
+ factory :app, :class => CFoundry::V2::App do
3
+ sequence(:guid) { |n| "app-guid-#{n}" }
4
+ sequence(:name) { |n| "app-name-#{n}" }
5
+
6
+ ignore do
7
+ client { FactoryGirl.build(:client) }
8
+ end
9
+
10
+ initialize_with { new(guid, client) }
11
+ end
12
+ end
@@ -0,0 +1,4 @@
1
+ FactoryGirl.define do
2
+ factory :client, :class => CFoundry::V2::Client do
3
+ end
4
+ end
@@ -0,0 +1,12 @@
1
+ FactoryGirl.define do
2
+ factory :organization, :class => CFoundry::V2::Organization do
3
+ sequence(:guid) { |n| "organization-guid-#{n}" }
4
+ sequence(:name) { |n| "organization-name-#{n}" }
5
+
6
+ ignore do
7
+ client { FactoryGirl.build(:client) }
8
+ end
9
+
10
+ initialize_with { new(guid, client) }
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ FactoryGirl.define do
2
+ factory :service_binding, :class => CFoundry::V2::ServiceBinding do
3
+ sequence(:guid) { |n| "service-binding-guid-#{n}" }
4
+
5
+ ignore do
6
+ client { FactoryGirl.build(:client) }
7
+ end
8
+
9
+ initialize_with { new(guid, client) }
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ FactoryGirl.define do
2
+ factory :service_instance, :class => CFoundry::V2::ServiceInstance do
3
+ sequence(:guid) { |n| "service-instance-guid-#{n}" }
4
+ sequence(:name) { |n| "service-instance-name-#{n}" }
5
+
6
+ ignore do
7
+ client { FactoryGirl.build(:client) }
8
+ end
9
+
10
+ initialize_with { new(guid, client) }
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ FactoryGirl.define do
2
+ factory :service_plan, :class => CFoundry::V2::ServicePlan do
3
+ sequence(:guid) { |n| "service-plan-guid-#{n}" }
4
+ sequence(:name) { |n| "service-plan-name-#{n}" }
5
+ extra { "{}" }
6
+
7
+ ignore do
8
+ client { FactoryGirl.build(:client) }
9
+ end
10
+
11
+ initialize_with { new(guid, client) }
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ FactoryGirl.define do
2
+ factory :service, :class => CFoundry::V2::Service do
3
+ sequence(:guid) { |n| "service-guid-#{n}" }
4
+ sequence(:label) { |n| "service-label-#{n}" }
5
+ service_plans { [build(:service_plan)] }
6
+ extra { "{}" }
7
+
8
+ ignore do
9
+ client { FactoryGirl.build(:client) }
10
+ end
11
+
12
+ initialize_with { new(guid, client) }
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ FactoryGirl.define do
2
+ factory :space, :class => CFoundry::V2::Space do
3
+ sequence(:guid) { |n| "space-guid-#{n}" }
4
+ sequence(:name) { |n| "space-name-#{n}" }
5
+
6
+ ignore do
7
+ client { FactoryGirl.build(:client) }
8
+ end
9
+
10
+ initialize_with { new(guid, client) }
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ FactoryGirl.define do
2
+ factory :stack, :class => CFoundry::V2::Stack do
3
+ sequence(:guid) { |n| "stack-guid-#{n}" }
4
+
5
+ ignore do
6
+ client { FactoryGirl.build(:client) }
7
+ end
8
+
9
+ initialize_with { new(guid, client) }
10
+ end
11
+ end
@@ -12,7 +12,7 @@ if ENV['CF_V2_RUN_INTEGRATION']
12
12
 
13
13
  let(:run_id) { TRAVIS_BUILD_ID.to_s + Time.new.to_f.to_s.gsub(".", "_") }
14
14
  let(:app) { "hello-sinatra-#{run_id}" }
15
- let(:service_name) { "rds-mysql-#{run_id}" }
15
+ let(:service_name) { "dummy-service-#{run_id}" }
16
16
 
17
17
  before do
18
18
  FileUtils.rm_rf File.expand_path(CF::CONFIG_DIR)
@@ -65,13 +65,13 @@ if ENV['CF_V2_RUN_INTEGRATION']
65
65
 
66
66
  # create a service here
67
67
  expect(runner).to say "What kind?>"
68
- runner.send_keys "rds-mysql"
68
+ runner.send_keys "dummy n/a"
69
69
 
70
70
  expect(runner).to say "Name?>"
71
71
  runner.send_keys service_name
72
72
 
73
73
  expect(runner).to say "Which plan?>"
74
- runner.send_keys "10mb"
74
+ runner.send_keys "small"
75
75
 
76
76
  expect(runner).to say /Creating service #{service_name}.*OK/
77
77
  expect(runner).to say /Binding .+ to .+ OK/
@@ -97,17 +97,17 @@ if ENV['CF_V2_RUN_INTEGRATION']
97
97
 
98
98
  BlueShell::Runner.run("#{cf_bin} services") do |runner|
99
99
  expect(runner).to say /name\s+service\s+provider\s+version\s+plan\s+bound apps/
100
- expect(runner).to say /rds-mysql-.+?\s+ # name
101
- rds-mysql\s+ # service
102
- aws\s+ # provider
100
+ expect(runner).to say /dummy-service-.+?\s+ # name
101
+ dummy\s+ # service
102
+ dummy\s+ # provider
103
103
  n\/a\s+ # version
104
- 10mb\s+ # plan
104
+ small\s+ # plan
105
105
  #{app} # bound apps
106
106
  /x
107
107
  end
108
108
 
109
109
  BlueShell::Runner.run("#{cf_bin} unbind-service #{service_name} #{app}") do |runner|
110
- runner.wait_for_exit(20)
110
+ expect(runner).to say "OK", 20
111
111
  end
112
112
 
113
113
  BlueShell::Runner.run("#{cf_bin} delete #{app}") do |runner|
@@ -15,14 +15,14 @@ describe CFManifests do
15
15
 
16
16
  let(:target_base) { "some-cloud.com" }
17
17
 
18
- let(:foo) { fake(:app, :name => "foo") }
19
- let(:bar) { fake(:app, :name => "bar") }
20
- let(:baz) { fake(:app, :name => "baz") }
21
- let(:xxx) { fake(:app, :name => "xxx") }
22
- let(:yyy) { fake(:app, :name => "yyy") }
18
+ let(:foo) { build(:app, :name => "foo") }
19
+ let(:bar) { build(:app, :name => "bar") }
20
+ let(:baz) { build(:app, :name => "baz") }
21
+ let(:xxx) { build(:app, :name => "xxx") }
22
+ let(:yyy) { build(:app, :name => "yyy") }
23
23
 
24
24
  let(:client) do
25
- fake_client :apps => [foo, bar, baz, xxx, yyy]
25
+ build(:client).tap { |client| client.stub(:apps => [foo, bar, baz, xxx, yyy]) }
26
26
  end
27
27
 
28
28
  let(:manifest_file) { "/abc/manifest.yml" }
@@ -44,31 +44,31 @@ describe CFManifests do
44
44
  end
45
45
 
46
46
  describe "#create_manifest_for" do
47
- let(:app) {
48
- fake :app,
47
+ let(:app) do
48
+ build :app,
49
49
  :memory => 2048,
50
50
  :total_instances => 2,
51
51
  :command => "ruby main.rb",
52
52
  :buildpack => "git://example.com/foo.git",
53
53
  :routes => [
54
- fake(:route,
55
- :host => "some-app-name",
56
- :domain => fake(:domain, :name => target_base))
54
+ build(:route,
55
+ :host => "some-app-name",
56
+ :domain => build(:domain, :name => target_base))
57
57
  ],
58
58
  :service_bindings => [
59
- fake(
59
+ build(
60
60
  :service_binding,
61
61
  :service_instance =>
62
- fake(
62
+ build(
63
63
  :service_instance,
64
64
  :name => "service-1",
65
65
  :service_plan =>
66
- fake(
66
+ build(
67
67
  :service_plan,
68
68
  :name => "P200",
69
- :service => fake(:service))))
69
+ :service => build(:service))))
70
70
  ]
71
- }
71
+ end
72
72
 
73
73
  subject { cmd.create_manifest_for(app, "some-path") }
74
74
 
@@ -105,73 +105,56 @@ describe CFManifests do
105
105
  end
106
106
  end
107
107
 
108
- context "when there is no url" do
108
+ context "with only minimum configuration" do
109
109
  let(:app) {
110
- fake :app,
110
+ build :app,
111
111
  :memory => 2048,
112
- :total_instances => 2
112
+ :total_instances => 2,
113
+ :routes => [],
114
+ :service_bindings => []
113
115
  }
114
116
 
115
117
  its(["url"]) { should eq "none" }
116
- end
117
-
118
- context "when there is no command" do
119
- let(:app) {
120
- fake :app,
121
- :memory => 2048,
122
- :total_instances => 2
123
- }
124
-
125
118
  it { should_not include "command" }
126
- end
127
-
128
- context "when there are no service bindings" do
129
- let(:app) {
130
- fake :app,
131
- :memory => 2048,
132
- :total_instances => 2
133
- }
134
-
135
119
  it { should_not include "services" }
136
120
  end
137
121
  end
138
122
 
139
123
  describe "#setup_services" do
140
124
  let(:service_bindings) { [] }
141
- let(:app) { fake :app, :service_bindings => service_bindings }
125
+ let(:app) { build :app, :service_bindings => service_bindings }
142
126
 
143
127
  before do
144
128
  dont_allow_ask(anything, anything)
145
129
  end
146
130
 
147
131
  context "when services are defined in the manifest" do
148
- let(:info) {
149
- { :services => { "service-1" => { :label => "mysql", :plan => "100" } } }
150
- }
151
-
152
- let(:service_1) { fake(:service_instance, :name => "service-1") }
132
+ let(:info) do
133
+ {:services => {"service-1" => {:label => "mysql", :plan => "100"}}}
134
+ end
153
135
 
154
- let(:plan_100) { fake :service_plan, :name => "100" }
136
+ let(:service_1) { build(:service_instance, :name => "service-1") }
137
+ let(:plan_100) { build :service_plan, :name => "100" }
155
138
 
156
- let(:mysql) {
157
- fake(
139
+ let(:mysql) do
140
+ build(
158
141
  :service,
159
142
  :label => "mysql",
160
143
  :provider => "core",
161
144
  :service_plans => [plan_100])
162
- }
145
+ end
163
146
 
164
147
  let(:service_instances) { [] }
165
148
 
166
- let(:client) {
167
- fake_client :services => [mysql], :service_instances => service_instances
168
- }
149
+ let(:client) do
150
+ build(:client).tap { |client| client.stub(:services => [mysql], :service_instances => service_instances) }
151
+ end
169
152
 
170
153
  context "and the services exist" do
171
154
  let(:service_instances) { [service_1] }
172
155
 
173
156
  context "and are already bound" do
174
- let(:service_bindings) { [fake(:service_binding, :service_instance => service_1)] }
157
+ let(:service_bindings) { [build(:service_binding, :service_instance => service_1)] }
175
158
 
176
159
  it "does neither create nor bind the service again" do
177
160
  cmd.should_not_receive(:invoke).with(:create_service, anything)