cfoundry 0.5.1.rc2 → 0.5.1.rc3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (69) hide show
  1. data/lib/cc_api_stub.rb +17 -0
  2. data/lib/cc_api_stub/applications.rb +53 -0
  3. data/lib/cc_api_stub/domains.rb +16 -0
  4. data/lib/cc_api_stub/frameworks.rb +22 -0
  5. data/lib/cc_api_stub/helper.rb +131 -0
  6. data/lib/cc_api_stub/login.rb +21 -0
  7. data/lib/cc_api_stub/organization_users.rb +21 -0
  8. data/lib/cc_api_stub/organizations.rb +70 -0
  9. data/lib/cc_api_stub/routes.rb +26 -0
  10. data/lib/cc_api_stub/runtimes.rb +22 -0
  11. data/lib/cc_api_stub/service_bindings.rb +22 -0
  12. data/lib/cc_api_stub/service_instances.rb +22 -0
  13. data/lib/cc_api_stub/services.rb +25 -0
  14. data/lib/cc_api_stub/spaces.rb +49 -0
  15. data/lib/cc_api_stub/users.rb +84 -0
  16. data/lib/cfoundry/baseclient.rb +24 -0
  17. data/lib/cfoundry/errors.rb +16 -133
  18. data/lib/cfoundry/v1/app.rb +6 -2
  19. data/lib/cfoundry/v2/app.rb +16 -4
  20. data/lib/cfoundry/v2/base.rb +10 -11
  21. data/lib/cfoundry/v2/client.rb +4 -0
  22. data/lib/cfoundry/version.rb +1 -1
  23. data/spec/cc_api_stub/applications_spec.rb +69 -0
  24. data/spec/cc_api_stub/domains_spec.rb +19 -0
  25. data/spec/cc_api_stub/frameworks_spec.rb +19 -0
  26. data/spec/cc_api_stub/login_spec.rb +20 -0
  27. data/spec/cc_api_stub/organization_users_spec.rb +19 -0
  28. data/spec/cc_api_stub/organizations_spec.rb +103 -0
  29. data/spec/cc_api_stub/routes_spec.rb +19 -0
  30. data/spec/cc_api_stub/runtimes_spec.rb +19 -0
  31. data/spec/cc_api_stub/service_bindings_spec.rb +13 -0
  32. data/spec/cc_api_stub/service_instances_spec.rb +19 -0
  33. data/spec/cc_api_stub/services_spec.rb +12 -0
  34. data/spec/cc_api_stub/spaces_spec.rb +38 -0
  35. data/spec/cc_api_stub/users_spec.rb +107 -0
  36. data/spec/cfoundry/baseclient_spec.rb +42 -2
  37. data/spec/cfoundry/v2/app_spec.rb +95 -0
  38. data/spec/fixtures/fake_cc_application.json +24 -0
  39. data/spec/fixtures/fake_cc_application_summary.json +57 -0
  40. data/spec/fixtures/fake_cc_created_application.json +11 -0
  41. data/spec/fixtures/fake_cc_created_domain.json +10 -0
  42. data/spec/fixtures/fake_cc_created_organization.json +11 -0
  43. data/spec/fixtures/fake_cc_created_route.json +13 -0
  44. data/spec/fixtures/fake_cc_created_service_instance.json +11 -0
  45. data/spec/fixtures/fake_cc_created_space.json +11 -0
  46. data/spec/fixtures/fake_cc_created_user.json +11 -0
  47. data/spec/fixtures/fake_cc_empty_search.json +7 -0
  48. data/spec/fixtures/fake_cc_frameworks.json +20 -0
  49. data/spec/fixtures/fake_cc_organization.json +144 -0
  50. data/spec/fixtures/fake_cc_organization_domains.json +34 -0
  51. data/spec/fixtures/fake_cc_organization_search.json +37 -0
  52. data/spec/fixtures/fake_cc_organization_summary.json +19 -0
  53. data/spec/fixtures/fake_cc_organization_users.json +81 -0
  54. data/spec/fixtures/fake_cc_runtimes.json +20 -0
  55. data/spec/fixtures/fake_cc_service_binding.json +22 -0
  56. data/spec/fixtures/fake_cc_service_bindings.json +24 -0
  57. data/spec/fixtures/fake_cc_service_instance.json +81 -0
  58. data/spec/fixtures/fake_cc_service_instances.json +0 -0
  59. data/spec/fixtures/fake_cc_service_types.json +124 -0
  60. data/spec/fixtures/fake_cc_space.json +45 -0
  61. data/spec/fixtures/fake_cc_space_summary.json +86 -0
  62. data/spec/fixtures/fake_cc_stats.json +29 -0
  63. data/spec/fixtures/fake_cc_user.json +112 -0
  64. data/spec/fixtures/fake_cc_user_organizations.json +92 -0
  65. data/spec/fixtures/fake_cc_user_with_managers.json +85 -0
  66. data/spec/spec_helper.rb +3 -0
  67. data/spec/support/fake_helper.rb +0 -36
  68. data/spec/support/shared_examples/cc_api_stub_request_examples.rb +79 -0
  69. metadata +254 -144
@@ -130,5 +130,9 @@ module CFoundry::V2
130
130
  self
131
131
  end
132
132
  end
133
+
134
+ def stream_url(url, &blk)
135
+ @base.stream_url(url, &blk)
136
+ end
133
137
  end
134
138
  end
@@ -1,4 +1,4 @@
1
1
  module CFoundry # :nodoc:
2
2
  # CFoundry library version number.
3
- VERSION = "0.5.1.rc2".freeze
3
+ VERSION = "0.5.1.rc3".freeze
4
4
  end
@@ -0,0 +1,69 @@
1
+ require 'spec_helper'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ describe CcApiStub::Applications do
6
+ describe ".succeed_to_load" do
7
+ let(:url) { "http://example.com/v2/apps/234" }
8
+ subject { CcApiStub::Applications.succeed_to_load }
9
+
10
+ it_behaves_like "a stubbed get request"
11
+ end
12
+
13
+ describe ".succeed_to_create" do
14
+ let(:url) { "http://example.com/v2/apps" }
15
+ subject { CcApiStub::Applications.succeed_to_create }
16
+
17
+ it_behaves_like "a stubbed post request"
18
+ end
19
+
20
+ describe ".succeed_to_update" do
21
+ let(:url) { "http://example.com/v2/apps/234" }
22
+ subject { CcApiStub::Applications.succeed_to_update }
23
+
24
+ it_behaves_like "a stubbed put request"
25
+ end
26
+
27
+ describe ".succeed_to_map_route" do
28
+ let(:url) { "http://example.com/v2/apps/234/routes/123" }
29
+ subject { CcApiStub::Applications.succeed_to_map_route }
30
+
31
+ it_behaves_like "a stubbed put request", :code => 201
32
+ end
33
+
34
+ describe ".succeed_to_load_stats" do
35
+ let(:url) { "http://example.com/v2/apps/234/stats" }
36
+ subject { CcApiStub::Applications.succeed_to_load_stats }
37
+
38
+ it_behaves_like "a stubbed get request"
39
+ end
40
+
41
+ describe ".summary_fixture" do
42
+ it "loads a fixture file" do
43
+ CcApiStub::Applications.summary_fixture.should be_a(Hash)
44
+ end
45
+ end
46
+
47
+ describe "succeed_to_load_summary" do
48
+ let(:url) { "http://example.com/v2/apps/234/summary" }
49
+
50
+ context "with default args" do
51
+ subject { CcApiStub::Applications.succeed_to_load_summary }
52
+
53
+ it_behaves_like "a stubbed get request", :including_json => { "state" => "STARTED" }
54
+ end
55
+
56
+ context "with user set args" do
57
+ subject { CcApiStub::Applications.succeed_to_load_summary(:state => "FLAPPING") }
58
+
59
+ it_behaves_like "a stubbed get request", :including_json => { "state" => "FLAPPING" }
60
+ end
61
+ end
62
+
63
+ describe ".succeed_to_load_service_bindings" do
64
+ let(:url) { "http://example.com/v2/apps/234/service_bindings" }
65
+ subject { CcApiStub::Applications.succeed_to_load_service_bindings }
66
+
67
+ it_behaves_like "a stubbed get request"
68
+ end
69
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ describe CcApiStub::Domains do
6
+ describe ".succeed_to_create" do
7
+ let(:url) { "http://example.com/v2/domains/" }
8
+ subject { CcApiStub::Domains.succeed_to_create }
9
+
10
+ it_behaves_like "a stubbed post request"
11
+ end
12
+
13
+ describe ".succeed_to_delete" do
14
+ let(:url) { "http://example.com/v2/domains/1234" }
15
+ subject { CcApiStub::Domains.succeed_to_delete }
16
+
17
+ it_behaves_like "a stubbed delete request"
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ describe CcApiStub::Frameworks do
6
+ let(:url) { "http://example.com/v2/frameworks?inline-relations-depth=1" }
7
+
8
+ describe ".succeed_to_load" do
9
+ subject { CcApiStub::Frameworks.succeed_to_load }
10
+
11
+ it_behaves_like "a stubbed get request"
12
+ end
13
+
14
+ describe ".fail_to_load" do
15
+ subject { CcApiStub::Frameworks.fail_to_load }
16
+
17
+ it_behaves_like "a stubbed get request", :code => 500, :ignore_response => true
18
+ end
19
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ describe CcApiStub::Login do
6
+ describe '.succeeds_to_find_uaa' do
7
+ let(:host) { 'http://example.com:8181' }
8
+ let(:url) { host + "/info" }
9
+ subject { CcApiStub::Login.succeeds_to_find_uaa(host) }
10
+
11
+ it_behaves_like "a stubbed get request", :including_json => {'authorization_endpoint' => 'https://uaa.localhost'}
12
+ end
13
+
14
+ describe '.succeeds_to_login_as_admin' do
15
+ let(:url) { "http://uaa.localhost/oauth/authorize" }
16
+ subject { CcApiStub::Login::succeeds_to_login_as_admin }
17
+
18
+ it_behaves_like "a stubbed post request", :code => 302, :ignore_response => true
19
+ end
20
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ describe CcApiStub::OrganizationUsers do
6
+ let(:url) { "http://example.com/v2/organizations/123/users/94087" }
7
+
8
+ describe ".succeed_to_delete" do
9
+ subject { CcApiStub::OrganizationUsers.succeed_to_delete }
10
+
11
+ it_behaves_like "a stubbed delete request"
12
+ end
13
+
14
+ describe ".fail_to_delete" do
15
+ subject { CcApiStub::OrganizationUsers.fail_to_delete }
16
+
17
+ it_behaves_like "a stubbed delete request", :code => 500, :ignore_response => true
18
+ end
19
+ end
@@ -0,0 +1,103 @@
1
+ require 'spec_helper'
2
+
3
+ describe CcApiStub::Organizations do
4
+ let(:client) { CFoundry::V2::Client.new }
5
+
6
+ describe '.succeed_to_create' do
7
+ it 'stubs creation of an organization' do
8
+ CcApiStub::Organizations.succeed_to_create
9
+
10
+ org = client.organization
11
+ org.create!.should be_true
12
+ org.guid.should == 'created-organization-id-1'
13
+ end
14
+ end
15
+
16
+ describe '.summary_fixture' do
17
+ it 'returns the fake org' do
18
+ CcApiStub::Organizations.summary_fixture.should be_a(Hash)
19
+ end
20
+ end
21
+
22
+ describe '.fail_to_find' do
23
+ it 'fails to find the org' do
24
+ guid = 'organization-id-1'
25
+ CcApiStub::Organizations.fail_to_find(guid)
26
+ client.organization(guid).exists?.should be_false
27
+ end
28
+ end
29
+
30
+ describe '.succeed_to_load_summary' do
31
+ it 'stubs loading the organization summary' do
32
+ CcApiStub::Organizations.succeed_to_load_summary
33
+
34
+ org = client.organization('organization-id-1')
35
+ org.summarize!
36
+ org.spaces[0].should be_a(CFoundry::V2::Space)
37
+ end
38
+ end
39
+
40
+ describe '.succeed_to_search' do
41
+ it 'stubs searching' do
42
+ org_name = 'yoda'
43
+ CcApiStub::Organizations.succeed_to_search(org_name)
44
+
45
+ org = client.organization_by_name(org_name)
46
+ org.guid.should == 'organization-id-1'
47
+ end
48
+ end
49
+
50
+ describe '.succeed_to_search_none' do
51
+ it 'stubs searching' do
52
+ org_name = 'yoda'
53
+ CcApiStub::Organizations.succeed_to_search_none
54
+
55
+ org = client.organization_by_name(org_name)
56
+ org.should be_nil
57
+ end
58
+ end
59
+
60
+ describe '.domains_fixture' do
61
+ it 'returns the fake domain' do
62
+ CcApiStub::Organizations.domains_fixture.should be_a(Hash)
63
+ end
64
+ end
65
+
66
+ describe '.domains_fixture_hash' do
67
+ it 'returns the fake domain' do
68
+ fixture = CcApiStub::Organizations.domain_fixture_hash
69
+ fixture.should be_a(Hash)
70
+ fixture.should == fixture.symbolize_keys
71
+ end
72
+ end
73
+
74
+ describe '.succeed_to_load_domains' do
75
+ it 'stubs domain loading' do
76
+ CcApiStub::Organizations.succeed_to_load_domains
77
+ org = client.organization('organization-id-1')
78
+ org.domains[0].should be_a(CFoundry::V2::Domain)
79
+ end
80
+ end
81
+
82
+ describe '.users_fixture' do
83
+ it "returns the fake users" do
84
+ CcApiStub::Organizations.users_fixture.should be_a(Hash)
85
+ end
86
+ end
87
+
88
+ describe '.user_fixture_hash' do
89
+ it 'returns the fake user' do
90
+ fixture = CcApiStub::Organizations.user_fixture_hash
91
+ fixture.should be_a(Hash)
92
+ fixture.should == fixture.symbolize_keys
93
+ end
94
+ end
95
+
96
+ describe '.succeed_to_load_users' do
97
+ it 'stubs users loading' do
98
+ CcApiStub::Organizations.succeed_to_load_users
99
+ org = client.organization('organization-id-1')
100
+ org.users[0].should be_a(CFoundry::V2::User)
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ describe CcApiStub::Routes do
6
+ let(:url) { "http://example.com/v2/routes/" }
7
+
8
+ describe ".succeed_to_load_none" do
9
+ subject { CcApiStub::Routes.succeed_to_load_none }
10
+
11
+ it_behaves_like "a stubbed get request", :including_json => { "resources" => [] }
12
+ end
13
+
14
+ describe ".succeed_to_create" do
15
+ subject { CcApiStub::Routes.succeed_to_create }
16
+
17
+ it_behaves_like "a stubbed post request"
18
+ end
19
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ describe CcApiStub::Runtimes do
6
+ let(:url) { "http://example.com/v2/runtimes?inline-relations-depth=1" }
7
+
8
+ describe ".succeed_to_load" do
9
+ subject { CcApiStub::Runtimes.succeed_to_load }
10
+
11
+ it_behaves_like "a stubbed get request"
12
+ end
13
+
14
+ describe ".fail_to_load" do
15
+ subject { CcApiStub::Runtimes.fail_to_load }
16
+
17
+ it_behaves_like "a stubbed get request", :code => 500, :ignore_response => true
18
+ end
19
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ describe CcApiStub::ServiceBindings do
6
+ let(:url) { "http://example.com/v2/service_bindings" }
7
+
8
+ describe ".succeed_to_create" do
9
+ subject { CcApiStub::ServiceBindings.succeed_to_create }
10
+
11
+ it_behaves_like "a stubbed post request"
12
+ end
13
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ describe CcApiStub::ServiceInstances do
6
+ describe ".succeed_to_create" do
7
+ let(:url) { "http://example.com/v2/service_instances" }
8
+ subject { CcApiStub::ServiceInstances.succeed_to_create }
9
+
10
+ it_behaves_like "a stubbed post request"
11
+ end
12
+
13
+ describe ".succeed_to_load" do
14
+ let(:url) { "http://example.com/v2/service_instances/123" }
15
+ subject { CcApiStub::ServiceInstances.succeed_to_load }
16
+
17
+ it_behaves_like "a stubbed get request"
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ describe CcApiStub::Services do
6
+ describe ".succeed_to_load" do
7
+ let(:url) { "http://example.com/v2/services?inline-relations-depth=1" }
8
+ subject { CcApiStub::Services.succeed_to_load }
9
+
10
+ it_behaves_like "a stubbed get request"
11
+ end
12
+ end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ describe CcApiStub::Spaces do
6
+ describe ".succeed_to_load" do
7
+ let(:url) { "http://example.com/v2/spaces/234" }
8
+ subject { CcApiStub::Spaces.succeed_to_load }
9
+
10
+ it_behaves_like "a stubbed get request"
11
+ end
12
+
13
+ describe ".succeed_to_create" do
14
+ let(:url) { "http://example.com/v2/spaces" }
15
+ subject { CcApiStub::Spaces.succeed_to_create }
16
+
17
+ it_behaves_like "a stubbed post request"
18
+ end
19
+
20
+ describe ".summary_fixture" do
21
+ it "returns a space fixture" do
22
+ CcApiStub::Spaces.summary_fixture.should be_a(Hash)
23
+ end
24
+ end
25
+
26
+ describe ".succeed_to_load_summary" do
27
+ let(:url) { "http://example.com/v2/spaces/234/summary" }
28
+ subject { CcApiStub::Spaces.succeed_to_load_summary }
29
+
30
+ it_behaves_like "a stubbed get request"
31
+
32
+ context "when specifying no_services" do
33
+ subject { CcApiStub::Spaces.succeed_to_load_summary(:no_services => true) }
34
+
35
+ it_behaves_like "a stubbed get request", :including_json => {"services" => []}
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,107 @@
1
+ require 'spec_helper'
2
+ require 'net/http'
3
+ require 'uri'
4
+
5
+ describe CcApiStub::Users do
6
+ describe ".succeed_to_load" do
7
+ let(:url) { "http://example.com/v2/users/2345?inline-relations-depth=2" }
8
+ let(:options) { {} }
9
+ subject { CcApiStub::Users.succeed_to_load(options) }
10
+
11
+ it_behaves_like "a stubbed get request"
12
+
13
+ context "when setting a user id" do
14
+ let(:options) { { :id => "some-id" } }
15
+
16
+ it_behaves_like "a stubbed get request", :including_json => { "metadata" => { "guid" => "some-id" } }
17
+ end
18
+
19
+ context "when setting an organization_id" do
20
+ let(:options) { { :organization_id => "some-id" } }
21
+
22
+ it_behaves_like "a stubbed get request", :including_json => Proc.new { |json|
23
+ json["entity"]["organizations"][0]["metadata"]["guid"].should == "some-id"
24
+ }
25
+ end
26
+
27
+ context "when specifying no_spaces" do
28
+ let(:options) { { :no_spaces => true } }
29
+
30
+ it_behaves_like "a stubbed get request", :including_json => Proc.new { |json|
31
+ json["entity"]["organizations"][0]["entity"]["spaces"].should == []
32
+ }
33
+ end
34
+
35
+ context "when specifying custom permissions" do
36
+ let(:options) { { :permissions => [:space_manager, :space2_auditor] } }
37
+
38
+ it_behaves_like "a stubbed get request", :including_json => {
39
+ "entity" =>
40
+ {
41
+ "managed_spaces" => [{"metadata" => { "guid" => "space-id-1" }, "entity" => {}}],
42
+ "audited_spaces" => [{"metadata" => { "guid" => "space-id-2" }, "entity" => {}}]
43
+ }
44
+ }
45
+ end
46
+ end
47
+
48
+ describe ".fail_to_find" do
49
+ let(:url) { "http://example.com/v2/users/2345" }
50
+ subject { CcApiStub::Users.fail_to_find }
51
+
52
+ it_behaves_like "a stubbed get request", :code => 404
53
+ end
54
+
55
+ describe ".succeed_to_create" do
56
+ let(:url) { "http://example.com/v2/users" }
57
+ subject { CcApiStub::Users.succeed_to_create }
58
+
59
+ it_behaves_like "a stubbed post request"
60
+ end
61
+
62
+ describe ".fail_to_create" do
63
+ let(:url) { "http://example.com/v2/users" }
64
+ subject { CcApiStub::Users.fail_to_create }
65
+
66
+ it_behaves_like "a stubbed post request", :code => 500
67
+ end
68
+
69
+ describe ".succeed_to_replace_permissions" do
70
+ let(:url) { "http://example.com/v2/users/123" }
71
+ subject { CcApiStub::Users.succeed_to_replace_permissions }
72
+
73
+ it_behaves_like "a stubbed put request", :ignore_response => true
74
+ end
75
+
76
+ describe ".fail_to_replace_permissions" do
77
+ let(:url) { "http://example.com/v2/users/123" }
78
+ subject { CcApiStub::Users.fail_to_replace_permissions }
79
+
80
+ it_behaves_like "a stubbed put request", :ignore_response => true, :code => 500
81
+ end
82
+
83
+ describe ".organizations_fixture" do
84
+ subject { CcApiStub::Users.organizations_fixture }
85
+
86
+ it "returns a fixture" do
87
+ subject.should be_a Array
88
+ end
89
+ end
90
+
91
+ describe ".organizations_fixture_hash" do
92
+ subject { CcApiStub::Users.organization_fixture_hash }
93
+
94
+ it "returns a fixture" do
95
+ subject.should be_a Hash
96
+ end
97
+
98
+ context "when specifying options" do
99
+ subject { CcApiStub::Users.organization_fixture_hash(:no_spaces => true, :no_managers => true) }
100
+
101
+ it "takes options into account" do
102
+ subject[:entity][:spaces].should be_nil
103
+ subject[:entity][:managers].should be_nil
104
+ end
105
+ end
106
+ end
107
+ end