forked from defunkt/github-gem
/
command_spec.rb
71 lines (62 loc) · 2.04 KB
/
command_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
require File.dirname(__FILE__) + '/spec_helper'
describe GitHub::Command do
before(:each) do
@command = GitHub::Command.new(proc { |x| puts x })
end
it "should return a GitHub::Helper" do
@command.helper.should be_instance_of(GitHub::Helper)
end
it "should call successfully" do
@command.should_receive(:puts).with("test").once
@command.call("test")
end
it "should return options" do
GitHub.should_receive(:options).with().once.and_return({:ssh => true})
@command.options.should == {:ssh => true}
end
it "should successfully call out to the shell" do
unguard(Kernel, :fork)
unguard(Kernel, :exec)
hi = @command.sh("echo hi")
hi.should == "hi"
hi.out?.should be(true)
hi.error?.should be(false)
hi.command.should == "echo hi"
if RUBY_PLATFORM =~ /mingw|mswin/
command = "cmd /c echo bye >&2"
else
command = "echo bye >&2"
end
bye = @command.sh(command)
bye.should == "bye"
bye.out?.should be(false)
bye.error?.should be(true)
bye.command.should == command
end
it "should return the results of a git operation" do
GitHub::Command::Shell.should_receive(:new).with("git rev-parse master").once.and_return do |*cmds|
s = mock("GitHub::Commands::Shell")
s.should_receive(:run).once.and_return("sha1")
s
end
@command.git("rev-parse master").should == "sha1"
end
it "should print the results of a git operation" do
@command.should_receive(:puts).with("sha1").once
GitHub::Command::Shell.should_receive(:new).with("git rev-parse master").once.and_return do |*cmds|
s = mock("GitHub::Commands::Shell")
s.should_receive(:run).once.and_return("sha1")
s
end
@command.pgit("rev-parse master")
end
it "should exec a git command" do
@command.should_receive(:exec).with("git rev-parse master").once
@command.git_exec "rev-parse master"
end
it "should die" do
@command.should_receive(:puts).once.with("=> message")
@command.should_receive(:exit!).once
@command.die "message"
end
end