aruba-doubles 0.2.0 → 0.2.1
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.
- data/.rvmrc +1 -0
- data/aruba-doubles.gemspec +3 -3
- data/features/double.feature +9 -6
- data/features/environment-friendly.feature +7 -1
- data/features/step_definitions/dev_steps.rb +4 -0
- data/lib/aruba-doubles/api.rb +4 -2
- data/lib/aruba-doubles/double.rb +1 -3
- data/lib/aruba-doubles/hooks.rb +1 -1
- data/spec/aruba-doubles/double_spec.rb +11 -20
- metadata +52 -89
data/.rvmrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
rvm use 1.9.2@aruba-doubles --create
|
data/aruba-doubles.gemspec
CHANGED
|
@@ -2,15 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
Gem::Specification.new do |s|
|
|
4
4
|
s.name = 'aruba-doubles'
|
|
5
|
-
s.version = '0.2.
|
|
5
|
+
s.version = '0.2.1'
|
|
6
6
|
s.authors = ["Björn Albers"]
|
|
7
7
|
s.email = ["bjoernalbers@googlemail.com"]
|
|
8
8
|
s.description = 'Stub command line applications with Cucumber'
|
|
9
9
|
s.summary = "#{s.name}-#{s.version}"
|
|
10
|
-
s.homepage =
|
|
10
|
+
s.homepage = "https://github.com/bjoernalbers/#{s.name}"
|
|
11
11
|
|
|
12
12
|
s.add_dependency 'cucumber', '>= 1.0.2'
|
|
13
|
-
|
|
13
|
+
|
|
14
14
|
s.add_development_dependency 'aruba', '>= 0.4.6'
|
|
15
15
|
s.add_development_dependency 'guard-cucumber', '>= 0.7.3'
|
|
16
16
|
s.add_development_dependency 'guard-rspec', '>= 0.5.1'
|
data/features/double.feature
CHANGED
|
@@ -58,14 +58,17 @@ Feature: Double command line applications
|
|
|
58
58
|
And the stderr should be empty
|
|
59
59
|
|
|
60
60
|
Scenario: Run with unexpected arguments
|
|
61
|
-
Given I could run `foo --bar
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
When I run `foo --
|
|
61
|
+
Given I could run `foo --bar 'hello, world.'`
|
|
62
|
+
When I successfully run `foo --bar 'hello, world.'`
|
|
63
|
+
Then the stdout should be empty
|
|
64
|
+
And the stderr should be empty
|
|
65
|
+
When I run `foo --bar hello world`
|
|
66
66
|
Then the exit status should not be 0
|
|
67
67
|
And the stdout should be empty
|
|
68
|
-
And the stderr should contain
|
|
68
|
+
And the stderr should contain:
|
|
69
|
+
"""
|
|
70
|
+
Unexpected arguments: ["--bar", "hello", "world"]
|
|
71
|
+
"""
|
|
69
72
|
|
|
70
73
|
Scenario: Stub multiple calls
|
|
71
74
|
Given I could run `foo --bar` with stdout:
|
|
@@ -20,4 +20,10 @@ Feature: Environment-friendly
|
|
|
20
20
|
Scenario: ...and check that it was deleted
|
|
21
21
|
Then the previous doubles directory should not exist
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
@no-clobber
|
|
24
|
+
Scenario: Create doubles directory...
|
|
25
|
+
Given I could run `ls`
|
|
26
|
+
When I keep the doubles directory in mind
|
|
27
|
+
|
|
28
|
+
Scenario: ...and check that it was not deleted
|
|
29
|
+
Then the previous doubles directory should exist
|
|
@@ -14,6 +14,10 @@ Then /^the previous doubles directory should not exist$/ do
|
|
|
14
14
|
File.should_not be_exist(@@previous_doubles_dir)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
+
Then /^the previous doubles directory should exist$/ do
|
|
18
|
+
File.should be_exist(@@previous_doubles_dir)
|
|
19
|
+
end
|
|
20
|
+
|
|
17
21
|
Then /^the (stdout|stderr) should be empty$/ do |stdout_stderr|
|
|
18
22
|
steps %Q{
|
|
19
23
|
Then the #{stdout_stderr} should contain exactly:
|
data/lib/aruba-doubles/api.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'aruba-doubles/double'
|
|
2
|
+
require 'shellwords'
|
|
2
3
|
|
|
3
4
|
module ArubaDoubles
|
|
4
5
|
module Api
|
|
@@ -7,8 +8,8 @@ module ArubaDoubles
|
|
|
7
8
|
end
|
|
8
9
|
|
|
9
10
|
def create_double_by_cmd(cmd, options = {})
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
arguments = Shellwords.split(cmd)
|
|
12
|
+
filename = arguments.shift
|
|
12
13
|
create_double(filename, arguments, options)
|
|
13
14
|
end
|
|
14
15
|
|
|
@@ -25,6 +26,7 @@ module ArubaDoubles
|
|
|
25
26
|
File.open(fullpath, 'w') do |f|
|
|
26
27
|
f.puts "#!/usr/bin/env ruby"
|
|
27
28
|
f.puts "# Doubled command line application by aruba-doubles\n"
|
|
29
|
+
f.puts "require 'rubygems'"
|
|
28
30
|
f.puts "require 'aruba-doubles/double'"
|
|
29
31
|
f.puts "double = ArubaDoubles::Double.new(#{double.expectations.inspect})"
|
|
30
32
|
f.puts "double.run"
|
data/lib/aruba-doubles/double.rb
CHANGED
|
@@ -7,14 +7,12 @@ module ArubaDoubles
|
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
def could_receive(args, options = {})
|
|
10
|
-
args = args.join(' ') if args.respond_to?(:join)
|
|
11
10
|
@expectations[args] = options
|
|
12
11
|
self
|
|
13
12
|
end
|
|
14
13
|
|
|
15
14
|
def run(argv = ARGV)
|
|
16
|
-
|
|
17
|
-
raise "Unexpected arguments" unless @expectations.has_key?(argv)
|
|
15
|
+
raise "Unexpected arguments: #{argv.inspect}" unless @expectations.has_key?(argv)
|
|
18
16
|
@stdout = @expectations[argv][:stdout]
|
|
19
17
|
@stderr = @expectations[argv][:stderr]
|
|
20
18
|
@exit_status = @expectations[argv][:exit_status]
|
data/lib/aruba-doubles/hooks.rb
CHANGED
|
@@ -5,16 +5,7 @@ describe ArubaDoubles::Double, '#could_receive' do
|
|
|
5
5
|
@double = ArubaDoubles::Double.new
|
|
6
6
|
end
|
|
7
7
|
|
|
8
|
-
it "should set expected arguments" do
|
|
9
|
-
@double.could_receive("--foo", :stdout => "foo")
|
|
10
|
-
@double.could_receive("--bar", :stdout => "bar")
|
|
11
|
-
@double.run(["--foo"])
|
|
12
|
-
@double.stdout.should eql("foo")
|
|
13
|
-
@double.run(["--bar"])
|
|
14
|
-
@double.stdout.should eql("bar")
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
it "should accept expected arguments as array" do
|
|
8
|
+
it "should set expected arguments like ARGV" do
|
|
18
9
|
@double.could_receive(["--foo"], :stdout => "foo")
|
|
19
10
|
@double.could_receive(["--bar"], :stdout => "bar")
|
|
20
11
|
@double.run(["--foo"])
|
|
@@ -24,11 +15,11 @@ describe ArubaDoubles::Double, '#could_receive' do
|
|
|
24
15
|
end
|
|
25
16
|
|
|
26
17
|
it "should return self" do
|
|
27
|
-
@double.could_receive(
|
|
18
|
+
@double.could_receive([]).should be(@double)
|
|
28
19
|
end
|
|
29
20
|
|
|
30
21
|
it "should set defaults when called without options" do
|
|
31
|
-
@double.could_receive(
|
|
22
|
+
@double.could_receive([])
|
|
32
23
|
@double.run([])
|
|
33
24
|
@double.stdout.should be_nil
|
|
34
25
|
@double.stderr.should be_nil
|
|
@@ -36,19 +27,19 @@ describe ArubaDoubles::Double, '#could_receive' do
|
|
|
36
27
|
end
|
|
37
28
|
|
|
38
29
|
it "should set optional stdout" do
|
|
39
|
-
@double.could_receive(
|
|
30
|
+
@double.could_receive([], :stdout => "hi")
|
|
40
31
|
@double.run([])
|
|
41
32
|
@double.stdout.should eql("hi")
|
|
42
33
|
end
|
|
43
34
|
|
|
44
35
|
it "should set optional stderr" do
|
|
45
|
-
@double.could_receive(
|
|
36
|
+
@double.could_receive([], :stderr => "HO!")
|
|
46
37
|
@double.run([])
|
|
47
38
|
@double.stderr.should eql("HO!")
|
|
48
39
|
end
|
|
49
40
|
|
|
50
41
|
it "should set optional exit status" do
|
|
51
|
-
@double.could_receive(
|
|
42
|
+
@double.could_receive([], :exit_status => 1)
|
|
52
43
|
@double.run([])
|
|
53
44
|
@double.exit_status.should eql(1)
|
|
54
45
|
end
|
|
@@ -62,7 +53,7 @@ describe ArubaDoubles::Double, '#run' do
|
|
|
62
53
|
it "should read ARGV by default" do
|
|
63
54
|
original_arguments = ARGV
|
|
64
55
|
ARGV = ["--foo"]
|
|
65
|
-
@double.could_receive("--foo", :stdout => "foo")
|
|
56
|
+
@double.could_receive(["--foo"], :stdout => "foo")
|
|
66
57
|
@double.run
|
|
67
58
|
@double.stdout.should eql("foo")
|
|
68
59
|
ARGV = original_arguments
|
|
@@ -71,16 +62,16 @@ describe ArubaDoubles::Double, '#run' do
|
|
|
71
62
|
it "should raise when called with unexpected arguments" do
|
|
72
63
|
lambda {
|
|
73
64
|
@double.run(["--unexpected"])
|
|
74
|
-
}.should raise_error(
|
|
65
|
+
}.should raise_error('Unexpected arguments: ["--unexpected"]')
|
|
75
66
|
end
|
|
76
67
|
end
|
|
77
68
|
|
|
78
69
|
describe ArubaDoubles::Double do
|
|
79
70
|
it "should be serializable" do
|
|
80
71
|
double = ArubaDoubles::Double.new
|
|
81
|
-
double.could_receive(
|
|
82
|
-
double.could_receive("--foo", :stdout=>"foo")
|
|
83
|
-
double.could_receive("--bar", :stderr=>"OOPS!", :exit_status=>255)
|
|
72
|
+
double.could_receive([])
|
|
73
|
+
double.could_receive(["--foo"], :stdout => "foo")
|
|
74
|
+
double.could_receive(["--bar"], :stderr => "OOPS!", :exit_status => 255)
|
|
84
75
|
loaded_double = ArubaDoubles::Double.new(double.expectations)
|
|
85
76
|
loaded_double.run([])
|
|
86
77
|
loaded_double.stdout.should be_nil
|
metadata
CHANGED
|
@@ -1,97 +1,69 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: aruba-doubles
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.2.1
|
|
5
5
|
prerelease:
|
|
6
|
-
segments:
|
|
7
|
-
- 0
|
|
8
|
-
- 2
|
|
9
|
-
- 0
|
|
10
|
-
version: 0.2.0
|
|
11
6
|
platform: ruby
|
|
12
|
-
authors:
|
|
13
|
-
-
|
|
7
|
+
authors:
|
|
8
|
+
- Björn Albers
|
|
14
9
|
autorequire:
|
|
15
10
|
bindir: bin
|
|
16
11
|
cert_chain: []
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
- !ruby/object:Gem::Dependency
|
|
12
|
+
date: 2011-11-13 00:00:00.000000000Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
21
15
|
name: cucumber
|
|
22
|
-
|
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
|
16
|
+
requirement: &70225278399380 !ruby/object:Gem::Requirement
|
|
24
17
|
none: false
|
|
25
|
-
requirements:
|
|
26
|
-
- -
|
|
27
|
-
- !ruby/object:Gem::Version
|
|
28
|
-
hash: 19
|
|
29
|
-
segments:
|
|
30
|
-
- 1
|
|
31
|
-
- 0
|
|
32
|
-
- 2
|
|
18
|
+
requirements:
|
|
19
|
+
- - ! '>='
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
33
21
|
version: 1.0.2
|
|
34
22
|
type: :runtime
|
|
35
|
-
version_requirements: *id001
|
|
36
|
-
- !ruby/object:Gem::Dependency
|
|
37
|
-
name: aruba
|
|
38
23
|
prerelease: false
|
|
39
|
-
|
|
24
|
+
version_requirements: *70225278399380
|
|
25
|
+
- !ruby/object:Gem::Dependency
|
|
26
|
+
name: aruba
|
|
27
|
+
requirement: &70225278398360 !ruby/object:Gem::Requirement
|
|
40
28
|
none: false
|
|
41
|
-
requirements:
|
|
42
|
-
- -
|
|
43
|
-
- !ruby/object:Gem::Version
|
|
44
|
-
hash: 3
|
|
45
|
-
segments:
|
|
46
|
-
- 0
|
|
47
|
-
- 4
|
|
48
|
-
- 6
|
|
29
|
+
requirements:
|
|
30
|
+
- - ! '>='
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
49
32
|
version: 0.4.6
|
|
50
33
|
type: :development
|
|
51
|
-
version_requirements: *id002
|
|
52
|
-
- !ruby/object:Gem::Dependency
|
|
53
|
-
name: guard-cucumber
|
|
54
34
|
prerelease: false
|
|
55
|
-
|
|
35
|
+
version_requirements: *70225278398360
|
|
36
|
+
- !ruby/object:Gem::Dependency
|
|
37
|
+
name: guard-cucumber
|
|
38
|
+
requirement: &70225278397520 !ruby/object:Gem::Requirement
|
|
56
39
|
none: false
|
|
57
|
-
requirements:
|
|
58
|
-
- -
|
|
59
|
-
- !ruby/object:Gem::Version
|
|
60
|
-
hash: 5
|
|
61
|
-
segments:
|
|
62
|
-
- 0
|
|
63
|
-
- 7
|
|
64
|
-
- 3
|
|
40
|
+
requirements:
|
|
41
|
+
- - ! '>='
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
65
43
|
version: 0.7.3
|
|
66
44
|
type: :development
|
|
67
|
-
version_requirements: *id003
|
|
68
|
-
- !ruby/object:Gem::Dependency
|
|
69
|
-
name: guard-rspec
|
|
70
45
|
prerelease: false
|
|
71
|
-
|
|
46
|
+
version_requirements: *70225278397520
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: guard-rspec
|
|
49
|
+
requirement: &70225278393980 !ruby/object:Gem::Requirement
|
|
72
50
|
none: false
|
|
73
|
-
requirements:
|
|
74
|
-
- -
|
|
75
|
-
- !ruby/object:Gem::Version
|
|
76
|
-
hash: 9
|
|
77
|
-
segments:
|
|
78
|
-
- 0
|
|
79
|
-
- 5
|
|
80
|
-
- 1
|
|
51
|
+
requirements:
|
|
52
|
+
- - ! '>='
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
81
54
|
version: 0.5.1
|
|
82
55
|
type: :development
|
|
83
|
-
|
|
56
|
+
prerelease: false
|
|
57
|
+
version_requirements: *70225278393980
|
|
84
58
|
description: Stub command line applications with Cucumber
|
|
85
|
-
email:
|
|
59
|
+
email:
|
|
86
60
|
- bjoernalbers@googlemail.com
|
|
87
61
|
executables: []
|
|
88
|
-
|
|
89
62
|
extensions: []
|
|
90
|
-
|
|
91
63
|
extra_rdoc_files: []
|
|
92
|
-
|
|
93
|
-
files:
|
|
64
|
+
files:
|
|
94
65
|
- .gitignore
|
|
66
|
+
- .rvmrc
|
|
95
67
|
- Gemfile
|
|
96
68
|
- Guardfile
|
|
97
69
|
- LICENSE
|
|
@@ -111,38 +83,29 @@ files:
|
|
|
111
83
|
- spec/spec_helper.rb
|
|
112
84
|
homepage: https://github.com/bjoernalbers/aruba-doubles
|
|
113
85
|
licenses: []
|
|
114
|
-
|
|
115
86
|
post_install_message:
|
|
116
87
|
rdoc_options: []
|
|
117
|
-
|
|
118
|
-
require_paths:
|
|
88
|
+
require_paths:
|
|
119
89
|
- lib
|
|
120
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
90
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
121
91
|
none: false
|
|
122
|
-
requirements:
|
|
123
|
-
- -
|
|
124
|
-
- !ruby/object:Gem::Version
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
- 0
|
|
128
|
-
version: "0"
|
|
129
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ! '>='
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '0'
|
|
96
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
97
|
none: false
|
|
131
|
-
requirements:
|
|
132
|
-
- -
|
|
133
|
-
- !ruby/object:Gem::Version
|
|
134
|
-
|
|
135
|
-
segments:
|
|
136
|
-
- 0
|
|
137
|
-
version: "0"
|
|
98
|
+
requirements:
|
|
99
|
+
- - ! '>='
|
|
100
|
+
- !ruby/object:Gem::Version
|
|
101
|
+
version: '0'
|
|
138
102
|
requirements: []
|
|
139
|
-
|
|
140
103
|
rubyforge_project:
|
|
141
|
-
rubygems_version: 1.8.
|
|
104
|
+
rubygems_version: 1.8.10
|
|
142
105
|
signing_key:
|
|
143
106
|
specification_version: 3
|
|
144
|
-
summary: aruba-doubles-0.2.
|
|
145
|
-
test_files:
|
|
107
|
+
summary: aruba-doubles-0.2.1
|
|
108
|
+
test_files:
|
|
146
109
|
- features/double.feature
|
|
147
110
|
- features/environment-friendly.feature
|
|
148
111
|
- features/step_definitions/dev_steps.rb
|