cfoundry 0.4.21 → 0.5.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 (50) hide show
  1. data/Rakefile +47 -24
  2. data/lib/cfoundry/auth_token.rb +48 -0
  3. data/lib/cfoundry/baseclient.rb +96 -277
  4. data/lib/cfoundry/client.rb +2 -0
  5. data/lib/cfoundry/concerns/login_helpers.rb +13 -0
  6. data/lib/cfoundry/errors.rb +21 -13
  7. data/lib/cfoundry/rest_client.rb +290 -0
  8. data/lib/cfoundry/test_support.rb +3 -0
  9. data/lib/cfoundry/trace_helpers.rb +9 -9
  10. data/lib/cfoundry/uaaclient.rb +66 -74
  11. data/lib/cfoundry/upload_helpers.rb +2 -0
  12. data/lib/cfoundry/v1/app.rb +2 -2
  13. data/lib/cfoundry/v1/base.rb +4 -51
  14. data/lib/cfoundry/v1/client.rb +7 -30
  15. data/lib/cfoundry/v1/model.rb +22 -5
  16. data/lib/cfoundry/v1/model_magic.rb +30 -15
  17. data/lib/cfoundry/v2/app.rb +2 -5
  18. data/lib/cfoundry/v2/base.rb +10 -74
  19. data/lib/cfoundry/v2/client.rb +19 -30
  20. data/lib/cfoundry/v2/domain.rb +1 -4
  21. data/lib/cfoundry/v2/model.rb +1 -3
  22. data/lib/cfoundry/v2/model_magic.rb +13 -23
  23. data/lib/cfoundry/version.rb +1 -1
  24. data/lib/cfoundry/zip.rb +1 -1
  25. data/spec/cfoundry/auth_token_spec.rb +77 -0
  26. data/spec/cfoundry/baseclient_spec.rb +54 -30
  27. data/spec/cfoundry/errors_spec.rb +10 -13
  28. data/spec/cfoundry/rest_client_spec.rb +238 -0
  29. data/spec/cfoundry/trace_helpers_spec.rb +10 -5
  30. data/spec/cfoundry/uaaclient_spec.rb +141 -114
  31. data/spec/cfoundry/upload_helpers_spec.rb +129 -0
  32. data/spec/cfoundry/v1/base_spec.rb +2 -2
  33. data/spec/cfoundry/v1/client_spec.rb +17 -0
  34. data/spec/cfoundry/v1/model_magic_spec.rb +43 -0
  35. data/spec/cfoundry/v2/base_spec.rb +256 -33
  36. data/spec/cfoundry/v2/client_spec.rb +68 -0
  37. data/spec/cfoundry/v2/model_magic_spec.rb +49 -0
  38. data/spec/fixtures/apps/with_vmcignore/ignored_dir/file_in_ignored_dir.txt +1 -0
  39. data/spec/fixtures/apps/with_vmcignore/ignored_file.txt +1 -0
  40. data/spec/fixtures/apps/with_vmcignore/non_ignored_dir/file_in_non_ignored_dir.txt +1 -0
  41. data/spec/fixtures/apps/with_vmcignore/non_ignored_dir/ignored_file.txt +1 -0
  42. data/spec/fixtures/apps/with_vmcignore/non_ignored_file.txt +1 -0
  43. data/spec/fixtures/empty_file +0 -0
  44. data/spec/spec_helper.rb +4 -4
  45. data/spec/support/randoms.rb +3 -0
  46. data/spec/support/shared_examples/client_login_examples.rb +46 -0
  47. data/spec/support/{summaries.rb → shared_examples/model_summary_examples.rb} +0 -0
  48. data/spec/support/v1_fake_helper.rb +144 -0
  49. metadata +101 -37
  50. data/lib/cfoundry/spec_helper.rb +0 -1
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+
3
+ describe CFoundry::V2::Client do
4
+ let(:client) { CFoundry::V2::Client.new }
5
+
6
+ describe "#register" do
7
+ let(:uaa) { CFoundry::UAAClient.new }
8
+ let(:email) { 'test@test.com' }
9
+ let(:password) { 'secret' }
10
+
11
+ subject { client.register(email, password) }
12
+
13
+ it "creates the user in uaa and ccng" do
14
+ stub(client.base).uaa { uaa }
15
+ stub(uaa).add_user(email, password) { { "id" => "1234" } }
16
+
17
+ user = fake(:user)
18
+ stub(client).user { user }
19
+ stub(user).create!
20
+ subject
21
+ expect(user.guid).to eq "1234"
22
+ end
23
+ end
24
+
25
+ describe "#current_user" do
26
+ subject { client.current_user }
27
+ before { client.token = token }
28
+
29
+ context "when there is no access_token_data" do
30
+ let(:token) { CFoundry::AuthToken.new("bearer some-access-token", "some-refresh-token") }
31
+ it { should eq nil }
32
+ end
33
+
34
+ context "when there is access_token_data" do
35
+ let(:token_data) { { :user_id => "123", :email => "guy@example.com" } }
36
+ let(:auth_header) { Base64.encode64("{}#{MultiJson.encode(token_data)}") }
37
+ let(:token) do
38
+ CFoundry::AuthToken.new("bearer #{auth_header}", "some-refresh-token")
39
+ end
40
+
41
+ it { should be_a CFoundry::V2::User }
42
+ its(:guid) { should eq "123" }
43
+ its(:emails) { should eq [{ :value => "guy@example.com"}] }
44
+ end
45
+ end
46
+
47
+ describe "#version" do
48
+ its(:version) { should eq 2 }
49
+ end
50
+
51
+ describe "#login_prompts" do
52
+ include_examples "client login prompts"
53
+ end
54
+
55
+ describe "#login" do
56
+ include_examples "client login" do
57
+ it 'sets the current organization to nil' do
58
+ client.current_organization = "org"
59
+ expect { subject }.to change { client.current_organization }.from("org").to(nil)
60
+ end
61
+
62
+ it 'sets the current space to nil' do
63
+ client.current_space = "space"
64
+ expect { subject }.to change { client.current_space }.from("space").to(nil)
65
+ end
66
+ end
67
+ end
68
+ end
@@ -67,6 +67,55 @@ describe CFoundry::V2::ModelMagic do
67
67
  expect(subject.foo).to eq "foo"
68
68
  end
69
69
  end
70
+
71
+ context 'when the attribute has a custom json key' do
72
+ let(:mymodel) {
73
+ fake_model { attribute :foo, :object, :at => :not_foo }
74
+ }
75
+
76
+ subject { myobject.fake }
77
+
78
+ it 'retrieves the attribute using the custom key' do
79
+ stub(client.base).my_fake_model(guid) {
80
+ { :entity => { :not_foo => "fizz" } }
81
+ }
82
+
83
+ expect(myobject.foo).to eq "fizz"
84
+ end
85
+ end
86
+ end
87
+
88
+ describe 'writing' do
89
+ context 'when the attribute has a custom json key' do
90
+ let(:mymodel) {
91
+ fake_model { attribute :foo, :object, :at => :not_foo }
92
+ }
93
+
94
+ subject { myobject }
95
+
96
+ it "stores it in the diff under the json key" do
97
+ mock(client.base).update_my_fake_model(subject.guid, :not_foo => 123)
98
+ subject.foo = 123
99
+ subject.update!
100
+ end
101
+
102
+ it "stores it in the manifest under the json key" do
103
+ subject.foo = 123
104
+
105
+ mock(client.base).create_my_fake_model(:not_foo => 123) do
106
+ { :metadata => { :guid => guid },
107
+ :entity => { :not_foo => 123 }
108
+ }
109
+ end
110
+
111
+ subject.create!
112
+ end
113
+
114
+ it "is then readable via the attribute name" do
115
+ subject.foo = 123
116
+ expect(subject.foo).to eq 123
117
+ end
118
+ end
70
119
  end
71
120
  end
72
121
 
@@ -0,0 +1 @@
1
+ ignored_file
@@ -0,0 +1 @@
1
+ non_ignored_file
File without changes
data/spec/spec_helper.rb CHANGED
@@ -1,16 +1,16 @@
1
+ SPEC_ROOT = File.dirname(__FILE__).freeze
2
+
1
3
  require "rspec"
2
4
  require "cfoundry"
3
5
  require "webmock/rspec"
6
+ require "ostruct"
4
7
 
5
8
  Dir[File.expand_path('../{support,fakes}/**/*.rb', __FILE__)].each do |file|
6
9
  require file
7
10
  end
8
11
 
9
- def random_string(tag = "random")
10
- sprintf("%s-%x", tag, rand(10 ** 6))
11
- end
12
-
13
12
  RSpec.configure do |c|
14
13
  c.include Fake::FakeMethods
14
+ c.include V1Fake::FakeMethods
15
15
  c.mock_with :rr
16
16
  end
@@ -0,0 +1,3 @@
1
+ def random_string(tag = "random")
2
+ sprintf("%s-%x", tag, rand(10 ** 6))
3
+ end
@@ -0,0 +1,46 @@
1
+ shared_examples_for 'client login prompts' do
2
+ let(:uaa) { CFoundry::UAAClient.new }
3
+ let(:prompts) do
4
+ {
5
+ :user_id => ["text", "User ID"],
6
+ :pin => ["password", "Your 8-digit Pin #"]
7
+ }
8
+ end
9
+
10
+ before do
11
+ stub(client.base).uaa { uaa }
12
+ stub(uaa).prompts { prompts }
13
+ end
14
+
15
+ subject { client.login_prompts }
16
+
17
+ it 'returns the prompts provided by UAA' do
18
+ expect(subject).to eq(prompts)
19
+ end
20
+ end
21
+
22
+ shared_examples_for 'client login' do
23
+ let(:email) { 'test@test.com' }
24
+ let(:password) { 'secret' }
25
+ let(:uaa) { CFoundry::UAAClient.new }
26
+ let(:access_token) { "some-access-token" }
27
+ let(:token_info) { CF::UAA::TokenInfo.new({ :access_token => access_token, :token_type => "bearer" }) }
28
+
29
+ before do
30
+ stub(client.base).uaa { uaa }
31
+ stub(uaa).authorize(email, password) { token_info }
32
+ end
33
+
34
+ subject { client.login(email, password) }
35
+
36
+ it 'returns a UAA token' do
37
+ expect(subject).to be_a(CFoundry::AuthToken)
38
+ expect(subject.auth_header).to eq("bearer #{access_token}")
39
+ end
40
+
41
+ it 'saves the data as the token' do
42
+ subject
43
+ expect(client.token).to be_a(CFoundry::AuthToken)
44
+ expect(client.token.auth_header).to eq("bearer #{access_token}")
45
+ end
46
+ end
@@ -0,0 +1,144 @@
1
+ module V1Fake
2
+ module FakeMethods
3
+ def v1_fake_client(attributes = {})
4
+ CFoundry::V1::FakeClient.new.fake(attributes)
5
+ end
6
+
7
+ def v1_fake(what, attributes = {})
8
+ v1_fake_client.send(what).fake(attributes)
9
+ end
10
+
11
+ def v1_fake_list(what, count, attributes = {})
12
+ objs = []
13
+
14
+ count.times do
15
+ objs << fake(what, attributes)
16
+ end
17
+
18
+ objs
19
+ end
20
+
21
+ def v1_fake_model(name = :my_fake_model, &init)
22
+ # There is a difference between ruby 1.8.7 and 1.8.8 in the order that
23
+ # the inherited callback gets called. In 1.8.7 the inherited callback
24
+ # is called after the block; in 1.8.8 and later it's called before.
25
+ # The upshot for us is we need a failproof way of getting the name
26
+ # to klass. So we're using a global variable to hand off the value.
27
+ # Please don't shoot us. - ESH & MMB
28
+ $object_name = name
29
+ klass = Class.new(CFoundry::V1::FakeModel) do
30
+ self.object_name = name
31
+ end
32
+
33
+ klass.class_eval(&init) if init
34
+
35
+ klass.define_client_methods
36
+
37
+ klass
38
+ end
39
+ end
40
+
41
+ def fake(attributes = {})
42
+ fake_attributes(attributes).each do |k, v|
43
+ send(:"#{k}=", v)
44
+ setup_reverse_relationship(v)
45
+ end
46
+
47
+ self
48
+ end
49
+
50
+ def setup_reverse_relationship(v)
51
+ # assign relationship for 'v' pointing back to this object
52
+ end
53
+ end
54
+
55
+ module CFoundry::V1
56
+ class Model
57
+ include V1Fake
58
+
59
+ attr_writer :client
60
+
61
+ private
62
+
63
+ def get_many(plural)
64
+ @cache[plural]
65
+ end
66
+
67
+ def fake_attributes(attributes)
68
+ default_fakes.merge(attributes)
69
+ end
70
+
71
+ # override this to provide basic attributes (like name) dynamically
72
+ def default_fakes
73
+ {}
74
+ end
75
+ end
76
+
77
+
78
+ class FakeBase < Base
79
+ end
80
+
81
+
82
+ class FakeClient < Client
83
+ include Fake
84
+
85
+ def initialize(target = "http://example.com", token = nil)
86
+ @base = FakeBase.new(target, token)
87
+ end
88
+
89
+ private
90
+
91
+ def get_many(plural)
92
+ instance_variable_get(:"@#{plural}")
93
+ end
94
+
95
+ def fake_attributes(attributes)
96
+ attributes
97
+ end
98
+
99
+ def setup_reverse_relationship(v)
100
+ if v.is_a?(Model)
101
+ v.client = self
102
+ elsif v.is_a?(Array)
103
+ v.each do |x|
104
+ setup_reverse_relationship(x)
105
+ end
106
+ end
107
+ end
108
+ end
109
+
110
+
111
+ class FakeModel < CFoundry::V1::Model
112
+ attr_reader :diff
113
+
114
+ def self.inherited(klass)
115
+ class << klass
116
+ attr_writer :object_name
117
+ end
118
+
119
+ # There is a difference between ruby 1.8.7 and 1.8.8 in the order that
120
+ # the inherited callback gets called. In 1.8.7 the inherited callback
121
+ # is called after the block; in 1.8.8 and later it's called before.
122
+ # The upshot for us is we need a failproof way of getting the name
123
+ # to klass. So we're using a global variable to hand off the value.
124
+ # Please don't shoot us. - ESH & MMB
125
+ klass.object_name = $object_name
126
+ super
127
+ end
128
+
129
+ class << self
130
+ attr_writer :object_name
131
+ end
132
+ end
133
+
134
+
135
+ module ModelMagic
136
+ def self.on_client(&blk)
137
+ FakeClient.module_eval(&blk)
138
+ end
139
+
140
+ def self.on_base_client(&blk)
141
+ FakeBase.module_eval(&blk)
142
+ end
143
+ end
144
+ end
metadata CHANGED
@@ -1,26 +1,25 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfoundry
3
3
  version: !ruby/object:Gem::Version
4
- hash: 37
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 4
9
- - 21
10
- version: 0.4.21
8
+ - 5
9
+ - 0
10
+ version: 0.5.0
11
11
  platform: ruby
12
12
  authors:
13
+ - Cloud Foundry Team
13
14
  - Alex Suraci
14
15
  autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2013-02-08 00:00:00 Z
19
+ date: 2013-02-06 00:00:00 Z
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
21
- name: multipart-post
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
24
23
  none: false
25
24
  requirements:
26
25
  - - ~>
@@ -30,12 +29,12 @@ dependencies:
30
29
  - 1
31
30
  - 1
32
31
  version: "1.1"
32
+ prerelease: false
33
33
  type: :runtime
34
- version_requirements: *id001
34
+ name: multipart-post
35
+ requirement: *id001
35
36
  - !ruby/object:Gem::Dependency
36
- name: multi_json
37
- prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
37
+ version_requirements: &id002 !ruby/object:Gem::Requirement
39
38
  none: false
40
39
  requirements:
41
40
  - - ~>
@@ -45,12 +44,12 @@ dependencies:
45
44
  - 1
46
45
  - 3
47
46
  version: "1.3"
47
+ prerelease: false
48
48
  type: :runtime
49
- version_requirements: *id002
49
+ name: multi_json
50
+ requirement: *id002
50
51
  - !ruby/object:Gem::Dependency
51
- name: rubyzip
52
- prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
52
+ version_requirements: &id003 !ruby/object:Gem::Requirement
54
53
  none: false
55
54
  requirements:
56
55
  - - ~>
@@ -60,12 +59,28 @@ dependencies:
60
59
  - 0
61
60
  - 9
62
61
  version: "0.9"
62
+ prerelease: false
63
63
  type: :runtime
64
- version_requirements: *id003
64
+ name: rubyzip
65
+ requirement: *id003
65
66
  - !ruby/object:Gem::Dependency
66
- name: rake
67
+ version_requirements: &id004 !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ~>
71
+ - !ruby/object:Gem::Version
72
+ hash: 29
73
+ segments:
74
+ - 1
75
+ - 3
76
+ - 3
77
+ version: 1.3.3
67
78
  prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
79
+ type: :runtime
80
+ name: cf-uaa-lib
81
+ requirement: *id004
82
+ - !ruby/object:Gem::Dependency
83
+ version_requirements: &id005 !ruby/object:Gem::Requirement
69
84
  none: false
70
85
  requirements:
71
86
  - - ~>
@@ -75,12 +90,12 @@ dependencies:
75
90
  - 0
76
91
  - 9
77
92
  version: "0.9"
93
+ prerelease: false
78
94
  type: :development
79
- version_requirements: *id004
95
+ name: rake
96
+ requirement: *id005
80
97
  - !ruby/object:Gem::Dependency
81
- name: rspec
82
- prerelease: false
83
- requirement: &id005 !ruby/object:Gem::Requirement
98
+ version_requirements: &id006 !ruby/object:Gem::Requirement
84
99
  none: false
85
100
  requirements:
86
101
  - - ~>
@@ -90,12 +105,12 @@ dependencies:
90
105
  - 2
91
106
  - 11
92
107
  version: "2.11"
108
+ prerelease: false
93
109
  type: :development
94
- version_requirements: *id005
110
+ name: rspec
111
+ requirement: *id006
95
112
  - !ruby/object:Gem::Dependency
96
- name: webmock
97
- prerelease: false
98
- requirement: &id006 !ruby/object:Gem::Requirement
113
+ version_requirements: &id007 !ruby/object:Gem::Requirement
99
114
  none: false
100
115
  requirements:
101
116
  - - ~>
@@ -105,12 +120,12 @@ dependencies:
105
120
  - 1
106
121
  - 9
107
122
  version: "1.9"
123
+ prerelease: false
108
124
  type: :development
109
- version_requirements: *id006
125
+ name: webmock
126
+ requirement: *id007
110
127
  - !ruby/object:Gem::Dependency
111
- name: rr
112
- prerelease: false
113
- requirement: &id007 !ruby/object:Gem::Requirement
128
+ version_requirements: &id008 !ruby/object:Gem::Requirement
114
129
  none: false
115
130
  requirements:
116
131
  - - ~>
@@ -120,11 +135,27 @@ dependencies:
120
135
  - 1
121
136
  - 0
122
137
  version: "1.0"
138
+ prerelease: false
139
+ type: :development
140
+ name: rr
141
+ requirement: *id008
142
+ - !ruby/object:Gem::Dependency
143
+ version_requirements: &id009 !ruby/object:Gem::Requirement
144
+ none: false
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ hash: 3
149
+ segments:
150
+ - 0
151
+ version: "0"
152
+ prerelease: false
123
153
  type: :development
124
- version_requirements: *id007
154
+ name: gem-release
155
+ requirement: *id009
125
156
  description:
126
157
  email:
127
- - asuraci@vmware.com
158
+ - vcap-dev@googlegroups.com
128
159
  executables: []
129
160
 
130
161
  extensions: []
@@ -134,11 +165,14 @@ extra_rdoc_files: []
134
165
  files:
135
166
  - LICENSE
136
167
  - Rakefile
168
+ - lib/cfoundry/auth_token.rb
137
169
  - lib/cfoundry/baseclient.rb
138
170
  - lib/cfoundry/chatty_hash.rb
139
171
  - lib/cfoundry/client.rb
172
+ - lib/cfoundry/concerns/login_helpers.rb
140
173
  - lib/cfoundry/errors.rb
141
- - lib/cfoundry/spec_helper.rb
174
+ - lib/cfoundry/rest_client.rb
175
+ - lib/cfoundry/test_support.rb
142
176
  - lib/cfoundry/trace_helpers.rb
143
177
  - lib/cfoundry/uaaclient.rb
144
178
  - lib/cfoundry/upload_helpers.rb
@@ -173,12 +207,18 @@ files:
173
207
  - lib/cfoundry/version.rb
174
208
  - lib/cfoundry/zip.rb
175
209
  - lib/cfoundry.rb
210
+ - spec/cfoundry/auth_token_spec.rb
176
211
  - spec/cfoundry/baseclient_spec.rb
177
212
  - spec/cfoundry/errors_spec.rb
213
+ - spec/cfoundry/rest_client_spec.rb
178
214
  - spec/cfoundry/trace_helpers_spec.rb
179
215
  - spec/cfoundry/uaaclient_spec.rb
216
+ - spec/cfoundry/upload_helpers_spec.rb
180
217
  - spec/cfoundry/v1/base_spec.rb
218
+ - spec/cfoundry/v1/client_spec.rb
219
+ - spec/cfoundry/v1/model_magic_spec.rb
181
220
  - spec/cfoundry/v2/base_spec.rb
221
+ - spec/cfoundry/v2/client_spec.rb
182
222
  - spec/cfoundry/v2/model_magic_spec.rb
183
223
  - spec/cfoundry/v2/organization_spec.rb
184
224
  - spec/cfoundry/v2/space_spec.rb
@@ -193,10 +233,19 @@ files:
193
233
  - spec/fakes/service_plan_fake.rb
194
234
  - spec/fakes/space_fake.rb
195
235
  - spec/fakes/user_fake.rb
236
+ - spec/fixtures/apps/with_vmcignore/ignored_dir/file_in_ignored_dir.txt
237
+ - spec/fixtures/apps/with_vmcignore/ignored_file.txt
238
+ - spec/fixtures/apps/with_vmcignore/non_ignored_dir/file_in_non_ignored_dir.txt
239
+ - spec/fixtures/apps/with_vmcignore/non_ignored_dir/ignored_file.txt
240
+ - spec/fixtures/apps/with_vmcignore/non_ignored_file.txt
241
+ - spec/fixtures/empty_file
196
242
  - spec/spec_helper.rb
197
243
  - spec/support/fake_helper.rb
198
- - spec/support/summaries.rb
199
- homepage: http://cloudfoundry.com/
244
+ - spec/support/randoms.rb
245
+ - spec/support/shared_examples/client_login_examples.rb
246
+ - spec/support/shared_examples/model_summary_examples.rb
247
+ - spec/support/v1_fake_helper.rb
248
+ homepage: http://github.com/cloudfoundry/vmc-lib
200
249
  licenses: []
201
250
 
202
251
  post_install_message:
@@ -230,12 +279,18 @@ signing_key:
230
279
  specification_version: 3
231
280
  summary: High-level library for working with the Cloud Foundry API.
232
281
  test_files:
282
+ - spec/cfoundry/auth_token_spec.rb
233
283
  - spec/cfoundry/baseclient_spec.rb
234
284
  - spec/cfoundry/errors_spec.rb
285
+ - spec/cfoundry/rest_client_spec.rb
235
286
  - spec/cfoundry/trace_helpers_spec.rb
236
287
  - spec/cfoundry/uaaclient_spec.rb
288
+ - spec/cfoundry/upload_helpers_spec.rb
237
289
  - spec/cfoundry/v1/base_spec.rb
290
+ - spec/cfoundry/v1/client_spec.rb
291
+ - spec/cfoundry/v1/model_magic_spec.rb
238
292
  - spec/cfoundry/v2/base_spec.rb
293
+ - spec/cfoundry/v2/client_spec.rb
239
294
  - spec/cfoundry/v2/model_magic_spec.rb
240
295
  - spec/cfoundry/v2/organization_spec.rb
241
296
  - spec/cfoundry/v2/space_spec.rb
@@ -250,6 +305,15 @@ test_files:
250
305
  - spec/fakes/service_plan_fake.rb
251
306
  - spec/fakes/space_fake.rb
252
307
  - spec/fakes/user_fake.rb
308
+ - spec/fixtures/apps/with_vmcignore/ignored_dir/file_in_ignored_dir.txt
309
+ - spec/fixtures/apps/with_vmcignore/ignored_file.txt
310
+ - spec/fixtures/apps/with_vmcignore/non_ignored_dir/file_in_non_ignored_dir.txt
311
+ - spec/fixtures/apps/with_vmcignore/non_ignored_dir/ignored_file.txt
312
+ - spec/fixtures/apps/with_vmcignore/non_ignored_file.txt
313
+ - spec/fixtures/empty_file
253
314
  - spec/spec_helper.rb
254
315
  - spec/support/fake_helper.rb
255
- - spec/support/summaries.rb
316
+ - spec/support/randoms.rb
317
+ - spec/support/shared_examples/client_login_examples.rb
318
+ - spec/support/shared_examples/model_summary_examples.rb
319
+ - spec/support/v1_fake_helper.rb