cf 1.0.1.rc1 → 1.1.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.
@@ -44,17 +44,13 @@ module CF::Service
44
44
  end
45
45
  end
46
46
 
47
- until offerings.size < 2
48
- # cast to Array since it might be given as a Service with #invoke
49
- offerings = Array(input[:offering, offerings.sort_by(&:label)])
50
- input.forget(:offering)
51
- end
47
+ selected_offerings = offerings.any? ? Array(input[:offering, offerings.sort_by(&:label)]) : []
52
48
 
53
- if offerings.empty?
49
+ if selected_offerings.empty?
54
50
  fail "Cannot find services matching the given criteria."
55
51
  end
56
52
 
57
- offering = offerings.first
53
+ offering = selected_offerings.first
58
54
 
59
55
  service = client.service_instance
60
56
  service.name = input[:name, offering]
@@ -1,3 +1,3 @@
1
1
  module CF
2
- VERSION = "1.0.1.rc1".freeze
2
+ VERSION = "1.1.0".freeze
3
3
  end
@@ -0,0 +1,67 @@
1
+ require "spec_helper"
2
+
3
+ module CF::Service
4
+ describe Create do
5
+ before do
6
+ any_instance_of(CF::CLI) do |cli|
7
+ stub(cli).client { client }
8
+ end
9
+ end
10
+
11
+ describe "metadata" do
12
+ let(:command) { Mothership.commands[:create_service] }
13
+
14
+ describe "command" do
15
+ subject { command }
16
+ its(:description) { should eq "Create a service" }
17
+ it { expect(Mothership::Help.group(:services, :manage)).to include(subject) }
18
+ end
19
+
20
+ include_examples "inputs must have descriptions"
21
+
22
+ describe "arguments" do
23
+ subject { command.arguments }
24
+ it "has the correct argument order" do
25
+ should eq([{:type => :optional, :value => nil, :name => :offering}, {:type => :optional, :value => nil, :name => :name}])
26
+ end
27
+ end
28
+ end
29
+
30
+ context "when there are services" do
31
+ let(:service_plan) { fake(:service_plan, :name => "F20") }
32
+ let(:selected_service) { fake(:service, :label => "Foo Service", :service_plans => [service_plan]) }
33
+ let(:command) { Mothership.new.invoke(:create_service, {}, {}) }
34
+ let(:client) { fake_client(:services => services) }
35
+
36
+ describe "when there is at least one service" do
37
+ let(:services) { [selected_service] }
38
+
39
+ it "asks for the service" do
40
+ mock_ask("What kind?", anything) { selected_service }
41
+ mock_ask("Name?", anything) { selected_service.label }
42
+ mock_ask("Which plan?", anything) { service_plan }
43
+ any_instance_of(CFoundry::V2::ServiceInstance) do |service_instance|
44
+ stub(service_instance).create!
45
+ end
46
+
47
+ capture_output { command }
48
+ end
49
+ end
50
+
51
+ describe "when there are more than one services" do
52
+ let(:services) { [selected_service, fake(:service), fake(:service)] }
53
+
54
+ it "asks for the service" do
55
+ mock_ask("What kind?", anything) { selected_service }
56
+ mock_ask("Name?", anything) { selected_service.label }
57
+ mock_ask("Which plan?", anything) { service_plan }
58
+ any_instance_of(CFoundry::V2::ServiceInstance) do |service_instance|
59
+ stub(service_instance).create!
60
+ end
61
+
62
+ capture_output { command }
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1.rc1
5
- prerelease: 6
4
+ version: 1.1.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Cloud Foundry Team
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-05-21 00:00:00.000000000 Z
13
+ date: 2013-05-22 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: addressable
@@ -51,10 +51,10 @@ dependencies:
51
51
  requirements:
52
52
  - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
- version: 1.1.0.rc2
54
+ version: 1.2.0
55
55
  - - <
56
56
  - !ruby/object:Gem::Version
57
- version: '1.2'
57
+ version: '1.3'
58
58
  type: :runtime
59
59
  prerelease: false
60
60
  version_requirements: !ruby/object:Gem::Requirement
@@ -62,10 +62,10 @@ dependencies:
62
62
  requirements:
63
63
  - - ! '>='
64
64
  - !ruby/object:Gem::Version
65
- version: 1.1.0.rc2
65
+ version: 1.2.0
66
66
  - - <
67
67
  - !ruby/object:Gem::Version
68
- version: '1.2'
68
+ version: '1.3'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: interact
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -477,6 +477,7 @@ files:
477
477
  - spec/cf/cli/route/map_spec.rb
478
478
  - spec/cf/cli/route/unmap_spec.rb
479
479
  - spec/cf/cli/service/bind_spec.rb
480
+ - spec/cf/cli/service/create_spec.rb
480
481
  - spec/cf/cli/service/delete_spec.rb
481
482
  - spec/cf/cli/service/rename_spec.rb
482
483
  - spec/cf/cli/service/service_spec.rb
@@ -534,16 +535,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
534
535
  version: '0'
535
536
  segments:
536
537
  - 0
537
- hash: 1616370664200184088
538
+ hash: -4141716087622851168
538
539
  required_rubygems_version: !ruby/object:Gem::Requirement
539
540
  none: false
540
541
  requirements:
541
- - - ! '>'
542
+ - - ! '>='
542
543
  - !ruby/object:Gem::Version
543
- version: 1.3.1
544
+ version: '0'
544
545
  requirements: []
545
546
  rubyforge_project: cf
546
- rubygems_version: 1.8.24
547
+ rubygems_version: 1.8.25
547
548
  signing_key:
548
549
  specification_version: 3
549
550
  summary: Friendly command-line interface for Cloud Foundry.
@@ -622,6 +623,7 @@ test_files:
622
623
  - spec/cf/cli/route/map_spec.rb
623
624
  - spec/cf/cli/route/unmap_spec.rb
624
625
  - spec/cf/cli/service/bind_spec.rb
626
+ - spec/cf/cli/service/create_spec.rb
625
627
  - spec/cf/cli/service/delete_spec.rb
626
628
  - spec/cf/cli/service/rename_spec.rb
627
629
  - spec/cf/cli/service/service_spec.rb