rspec-bash 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +8 -0
- data/Gemfile +1 -0
- data/README.md +23 -0
- data/Rakefile +15 -4
- data/bin/bash_stub.sh +92 -0
- data/bin/bash_wrapper.sh.erb +12 -0
- data/bin/ruby_stub.rb +33 -0
- data/lib/rspec/bash.rb +5 -4
- data/lib/rspec/bash/command.rb +5 -0
- data/lib/rspec/bash/command/call_configuration.rb +76 -0
- data/lib/rspec/bash/command/call_configuration_manager.rb +24 -0
- data/lib/rspec/bash/command/call_log.rb +48 -0
- data/lib/rspec/bash/command/call_log_manager.rb +38 -0
- data/lib/rspec/bash/command/stubbed_command.rb +64 -0
- data/lib/rspec/bash/server.rb +3 -0
- data/lib/rspec/bash/server/bash_stub_marshaller.rb +19 -0
- data/lib/rspec/bash/server/ruby_stub_marshaller.rb +13 -0
- data/lib/rspec/bash/server/stub_server.rb +47 -0
- data/lib/rspec/bash/stubbed_env.rb +75 -54
- data/lib/rspec/bash/util/call_conf_argument_list_matcher.rb +5 -5
- data/lib/rspec/bash/util/call_log_argument_list_matcher.rb +1 -1
- data/lib/rspec/bash/wrapper.rb +4 -0
- data/lib/rspec/bash/wrapper/bash_stub_script.rb +15 -0
- data/lib/rspec/bash/wrapper/bash_wrapper.rb +54 -0
- data/lib/rspec/bash/wrapper/ruby_stub_script.rb +15 -0
- data/lib/rspec/bash/wrapper/stub_function.rb +36 -0
- data/rspec-bash.gemspec +2 -1
- data/spec/classes/command/call_configuration_manager_spec.rb +68 -0
- data/spec/classes/{call_configuration_spec.rb → command/call_configuration_spec.rb} +51 -114
- data/spec/classes/command/call_log_manager_spec.rb +83 -0
- data/spec/classes/{call_log_spec.rb → command/call_log_spec.rb} +23 -82
- data/spec/classes/command/stubbed_command_spec.rb +118 -0
- data/spec/classes/server/bash_stub_marshaller_spec.rb +38 -0
- data/spec/classes/server/ruby_stub_marshaller_spec.rb +31 -0
- data/spec/classes/server/stub_server_spec.rb +121 -0
- data/spec/classes/stubbed_env_spec.rb +141 -280
- data/spec/classes/util/call_conf_argument_list_matcher_spec.rb +17 -17
- data/spec/classes/util/call_log_argument_list_matcher_spec.rb +24 -18
- data/spec/classes/wrapper/bash_wrapper_spec.rb +37 -0
- data/spec/classes/wrapper/ruby_stub_script_spec.rb +204 -0
- data/spec/helper/string_file_io.rb +1 -1
- data/spec/integration/call_log/called_with_args_spec.rb +8 -4
- data/spec/integration/call_log/called_with_no_args_spec.rb +1 -1
- data/spec/integration/call_log/stdin_spec.rb +10 -4
- data/spec/integration/edge_cases_spec.rb +34 -0
- data/spec/integration/matchers/be_called_with_arguments_spec.rb +12 -13
- data/spec/integration/matchers/be_called_with_no_arguments_spec.rb +6 -7
- data/spec/integration/stubbed_command/outputs_spec.rb +111 -91
- data/spec/integration/stubbed_command/returns_exitstatus_spec.rb +46 -37
- data/spec/integration/stubbed_env/execute_with_env_vars_spec.rb +3 -4
- data/spec/integration/stubbed_env/execute_with_path_spec.rb +6 -7
- data/spec/integration/stubbed_env/execute_with_stub_wrapper_spec.rb +4 -12
- data/spec/integration/stubbed_env/override_spec.rb +354 -0
- data/spec/integration/wrapper/bash_stub_script_spec.rb +383 -0
- data/spec/integration/wrapper/bash_wrapper_spec.rb +48 -0
- data/spec/scripts/function_library.sh +9 -1
- data/spec/spec_helper.rb +2 -0
- metadata +65 -21
- data/bin/function_override.sh.erb +0 -7
- data/bin/function_override_wrapper.sh.erb +0 -19
- data/bin/stub.rb.erb +0 -56
- data/lib/rspec/bash/call_configuration.rb +0 -62
- data/lib/rspec/bash/call_log.rb +0 -71
- data/lib/rspec/bash/stubbed_command.rb +0 -88
- data/spec/classes/stub_spec.rb +0 -510
- data/spec/classes/stubbed_command_spec.rb +0 -134
- data/spec/integration/assert_called_spec.rb +0 -0
@@ -1,134 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
include Rspec::Bash
|
3
|
-
|
4
|
-
describe 'StubbedCommand' do
|
5
|
-
include_examples 'manage a :temp_directory'
|
6
|
-
|
7
|
-
before(:each) do
|
8
|
-
allow(FileUtils).to receive(:cp)
|
9
|
-
end
|
10
|
-
|
11
|
-
context '#called_with_args?' do
|
12
|
-
before(:each) do
|
13
|
-
@call_log = double(Rspec::Bash::CallLog)
|
14
|
-
allow(Rspec::Bash::CallLog).to receive(:new).and_return(@call_log)
|
15
|
-
@subject = Rspec::Bash::StubbedCommand.new('command', temp_directory)
|
16
|
-
end
|
17
|
-
context 'with only a series of arguments' do
|
18
|
-
it 'passes the check to its CallLog\'s #called_with_args? method' do
|
19
|
-
expect(@call_log).to receive(:called_with_args?)
|
20
|
-
.with('first_argument', 'second_argument')
|
21
|
-
.and_return(true)
|
22
|
-
@subject.called_with_args?('first_argument', 'second_argument')
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
context '#with_args' do
|
28
|
-
before(:each) do
|
29
|
-
@subject = Rspec::Bash::StubbedCommand.new('command', temp_directory)
|
30
|
-
@subject.with_args('argument_one', 'argument_two')
|
31
|
-
end
|
32
|
-
it 'sets the arguments array on the StubbedCommand to the arguments that were passed in' do
|
33
|
-
expect(@subject.arguments).to eql %w(argument_one argument_two)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
context '#call_count' do
|
38
|
-
before(:each) do
|
39
|
-
@call_log = double(Rspec::Bash::CallLog)
|
40
|
-
allow(Rspec::Bash::CallLog).to receive(:new).and_return(@call_log)
|
41
|
-
@subject = Rspec::Bash::StubbedCommand.new('command', temp_directory)
|
42
|
-
end
|
43
|
-
it 'returns value returned from call_log argument count when there are no arguments' do
|
44
|
-
expect(@call_log).to receive(:call_count).with([]).and_return('arbitrary return value')
|
45
|
-
expect(@subject.call_count([])).to eql 'arbitrary return value'
|
46
|
-
end
|
47
|
-
it 'returns value returned from call_log argument count when there is only one argument' do
|
48
|
-
expect(@call_log).to receive(:call_count)
|
49
|
-
.with(['only arg'])
|
50
|
-
.and_return('arbitrary return value')
|
51
|
-
expect(@subject.call_count(['only arg'])).to eql 'arbitrary return value'
|
52
|
-
end
|
53
|
-
it 'returns value returned from call_log argument count when there are multiple arguments' do
|
54
|
-
expect(@call_log).to receive(:call_count).with(['first arg', 'second arg'])
|
55
|
-
.and_return('arbitrary return value')
|
56
|
-
expect(@subject.call_count(['first arg', 'second arg'])).to eql 'arbitrary return value'
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
context '#called?' do
|
61
|
-
before(:each) do
|
62
|
-
@call_log = double(Rspec::Bash::CallLog)
|
63
|
-
allow(Rspec::Bash::CallLog).to receive(:new).and_return(@call_log)
|
64
|
-
@subject = Rspec::Bash::StubbedCommand.new('command', temp_directory)
|
65
|
-
end
|
66
|
-
it 'returns false when there is no call_log' do
|
67
|
-
expect(@call_log).to receive(:exist?).and_return(false)
|
68
|
-
expect(@subject.called?).to be_falsey
|
69
|
-
end
|
70
|
-
it 'returns false when call_log is not called with args' do
|
71
|
-
expect(@call_log).to receive(:exist?).and_return(true)
|
72
|
-
expect(@call_log).to receive(:called_with_args?).and_return(false)
|
73
|
-
expect(@subject.called?).to be_falsey
|
74
|
-
end
|
75
|
-
it 'returns true when call_log is called with args' do
|
76
|
-
expect(@call_log).to receive(:exist?).and_return(true)
|
77
|
-
expect(@call_log).to receive(:called_with_args?).and_return(true)
|
78
|
-
expect(@subject.called?).to be_truthy
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
context '#stdin' do
|
83
|
-
before(:each) do
|
84
|
-
@call_log = double(Rspec::Bash::CallLog)
|
85
|
-
allow(Rspec::Bash::CallLog).to receive(:new).and_return(@call_log)
|
86
|
-
@subject = Rspec::Bash::StubbedCommand.new('command', temp_directory)
|
87
|
-
end
|
88
|
-
it 'returns nil when there is no call_log' do
|
89
|
-
expect(@call_log).to receive(:exist?).and_return(false)
|
90
|
-
expect(@subject.stdin).to be_nil
|
91
|
-
end
|
92
|
-
it 'returns stdin from call log when call_log exists' do
|
93
|
-
expect(@call_log).to receive(:exist?).and_return(true)
|
94
|
-
expect(@call_log).to receive(:stdin_for_args).and_return('arbitrary stdin')
|
95
|
-
expect(@subject.stdin).to eql 'arbitrary stdin'
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
context '#returns_exitstatus' do
|
100
|
-
before(:each) do
|
101
|
-
@call_configuration = double(Rspec::Bash::CallConfiguration)
|
102
|
-
allow(Rspec::Bash::CallConfiguration).to receive(:new).and_return(@call_configuration)
|
103
|
-
@subject = Rspec::Bash::StubbedCommand.new('command', temp_directory)
|
104
|
-
end
|
105
|
-
it 'sets the exitcode on call_configuration' do
|
106
|
-
expect(@call_configuration).to receive(:set_exitcode).with('exit code', anything)
|
107
|
-
@subject.returns_exitstatus 'exit code'
|
108
|
-
end
|
109
|
-
it 'returns itself' do
|
110
|
-
expect(@call_configuration).to receive(:set_exitcode)
|
111
|
-
expect(@subject.returns_exitstatus(anything)).to eql @subject
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
context '#outputs' do
|
116
|
-
before(:each) do
|
117
|
-
@call_configuration = double(Rspec::Bash::CallConfiguration)
|
118
|
-
allow(Rspec::Bash::CallConfiguration).to receive(:new).and_return(@call_configuration)
|
119
|
-
@subject = Rspec::Bash::StubbedCommand.new('command', temp_directory)
|
120
|
-
end
|
121
|
-
it 'sets the output on the call_configuration' do
|
122
|
-
expect(@call_configuration).to receive(:add_output).with('contents', 'stderr', anything)
|
123
|
-
@subject.outputs('contents', to: 'stderr')
|
124
|
-
end
|
125
|
-
it 'sets the "to" value for the output to stdout by default' do
|
126
|
-
expect(@call_configuration).to receive(:add_output).with('contents', :stdout, anything)
|
127
|
-
@subject.outputs('contents')
|
128
|
-
end
|
129
|
-
it 'returns itself' do
|
130
|
-
expect(@call_configuration).to receive(:add_output)
|
131
|
-
expect(@subject.outputs(anything)).to eql @subject
|
132
|
-
end
|
133
|
-
end
|
134
|
-
end
|
File without changes
|