albacore 0.0.7
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/EULA.txt +19 -0
- data/README.markdown +70 -0
- data/VERSION +1 -0
- data/lib/albacore.rb +9 -0
- data/lib/albacore/assemblyinfo.rb +104 -0
- data/lib/albacore/expandtemplates.rb +64 -0
- data/lib/albacore/msbuild.rb +63 -0
- data/lib/albacore/mspectestrunner.rb +33 -0
- data/lib/albacore/ncoverconsole.rb +64 -0
- data/lib/albacore/ncoverreport.rb +61 -0
- data/lib/albacore/ncoverreports/assemblyfilter.rb +10 -0
- data/lib/albacore/ncoverreports/branchcoverage.rb +10 -0
- data/lib/albacore/ncoverreports/classfilter.rb +9 -0
- data/lib/albacore/ncoverreports/codecoveragebase.rb +25 -0
- data/lib/albacore/ncoverreports/cyclomaticcomplexity.rb +23 -0
- data/lib/albacore/ncoverreports/documentfilter.rb +9 -0
- data/lib/albacore/ncoverreports/fullcoveragereport.rb +21 -0
- data/lib/albacore/ncoverreports/methodcoverage.rb +10 -0
- data/lib/albacore/ncoverreports/methodfilter.rb +9 -0
- data/lib/albacore/ncoverreports/namespacefilter.rb +9 -0
- data/lib/albacore/ncoverreports/reportfilterbase.rb +26 -0
- data/lib/albacore/ncoverreports/summaryreport.rb +22 -0
- data/lib/albacore/ncoverreports/symbolcoverage.rb +10 -0
- data/lib/albacore/nunittestrunner.rb +38 -0
- data/lib/albacore/sftp.rb +24 -0
- data/lib/albacore/sqlcmd.rb +55 -0
- data/lib/albacore/ssh.rb +25 -0
- data/lib/albacore/support/albacore_helper.rb +4 -0
- data/lib/albacore/support/failure.rb +22 -0
- data/lib/albacore/support/logging.rb +32 -0
- data/lib/albacore/support/runcommand.rb +45 -0
- data/lib/albacore/support/yamlconfig.rb +30 -0
- data/lib/albacore/zipdirectory.rb +55 -0
- data/lib/rake/assemblyinfotask.rb +22 -0
- data/lib/rake/expandtemplatestask.rb +21 -0
- data/lib/rake/msbuildtask.rb +22 -0
- data/lib/rake/ncoverconsoletask.rb +22 -0
- data/lib/rake/ncoverreporttask.rb +22 -0
- data/lib/rake/nunittask.rb +22 -0
- data/lib/rake/renametask.rb +25 -0
- data/lib/rake/sftptask.rb +21 -0
- data/lib/rake/sqlcmdtask.rb +22 -0
- data/lib/rake/sshtask.rb +21 -0
- data/lib/rake/ziptask.rb +21 -0
- data/rakefile.rb +144 -0
- data/spec/assemblyinfo_spec.rb +246 -0
- data/spec/assemblyinfotask_spec.rb +31 -0
- data/spec/expandtemplates_spec.rb +127 -0
- data/spec/expandtemplatestask_spec.rb +31 -0
- data/spec/msbuild_spec.rb +173 -0
- data/spec/msbuildtask_spec.rb +31 -0
- data/spec/ncoverconsole_spec.rb +247 -0
- data/spec/ncoverconsoletask_spec.rb +31 -0
- data/spec/ncoverreport_spec.rb +577 -0
- data/spec/ncoverreporttask_spec.rb +31 -0
- data/spec/nunittask_spec.rb +31 -0
- data/spec/patches/system_patch.rb +16 -0
- data/spec/patches/tasklib_patch.rb +12 -0
- data/spec/renametask_spec.rb +30 -0
- data/spec/sftp_spec.rb +30 -0
- data/spec/sftptask_spec.rb +41 -0
- data/spec/sqlcmd_spec.rb +139 -0
- data/spec/sqlcmdtask_spec.rb +31 -0
- data/spec/ssh_spec.rb +48 -0
- data/spec/sshtask_spec.rb +39 -0
- data/spec/support/AssemblyInfo/assemblyinfo.yml +2 -0
- data/spec/support/CodeCoverage/mspec/assemblies/Machine.Specifications.NUnit.dll +0 -0
- data/spec/support/CodeCoverage/mspec/assemblies/Machine.Specifications.dll +0 -0
- data/spec/support/CodeCoverage/mspec/assemblies/TestSolution.MSpecTests.dll +0 -0
- data/spec/support/CodeCoverage/mspec/assemblies/TestSolution.dll +0 -0
- data/spec/support/CodeCoverage/mspec/assemblies/nunit.framework.dll +0 -0
- data/spec/support/CodeCoverage/nunit/assemblies/TestSolution.Tests.dll +0 -0
- data/spec/support/CodeCoverage/nunit/assemblies/TestSolution.dll +0 -0
- data/spec/support/CodeCoverage/nunit/assemblies/nunit.framework.dll +0 -0
- data/spec/support/CodeCoverage/nunit/failing_assemblies/TestSolution.FailingTests.dll +0 -0
- data/spec/support/CodeCoverage/nunit/failing_assemblies/nunit.framework.dll +0 -0
- data/spec/support/CodeCoverage/report/coverage.xml +4578 -0
- data/spec/support/TestSolution/TestSolution.FailingTests/FailingTestFixture.cs +19 -0
- data/spec/support/TestSolution/TestSolution.FailingTests/Properties/AssemblyInfo.cs +36 -0
- data/spec/support/TestSolution/TestSolution.FailingTests/TestSolution.FailingTests.csproj +63 -0
- data/spec/support/TestSolution/TestSolution.MSpecTests/Properties/AssemblyInfo.cs +36 -0
- data/spec/support/TestSolution/TestSolution.MSpecTests/SomeSpecTest.cs +18 -0
- data/spec/support/TestSolution/TestSolution.MSpecTests/TestSolution.MSpecTests.csproj +77 -0
- data/spec/support/TestSolution/TestSolution.Tests/Properties/AssemblyInfo.cs +36 -0
- data/spec/support/TestSolution/TestSolution.Tests/SomeTestFixture.cs +23 -0
- data/spec/support/TestSolution/TestSolution.Tests/TestSolution.Tests.csproj +69 -0
- data/spec/support/TestSolution/TestSolution.sln +38 -0
- data/spec/support/TestSolution/TestSolution/Class1.cs +17 -0
- data/spec/support/TestSolution/TestSolution/Properties/AssemblyInfo.cs +36 -0
- data/spec/support/TestSolution/TestSolution/TestSolution.csproj +59 -0
- data/spec/support/assemblyinfotester.rb +42 -0
- data/spec/support/expandtemplates/datafiles/multiplevalues.yml +3 -0
- data/spec/support/expandtemplates/datafiles/multitemplate-specificfile.yml +11 -0
- data/spec/support/expandtemplates/datafiles/multitemplate.yml +4 -0
- data/spec/support/expandtemplates/datafiles/sample.yml +1 -0
- data/spec/support/expandtemplates/templates/multipleinstance.config +4 -0
- data/spec/support/expandtemplates/templates/multiplevalues.config +1 -0
- data/spec/support/expandtemplates/templates/sample.config +1 -0
- data/spec/support/expandtemplatestestdata.rb +69 -0
- data/spec/support/msbuildtestdata.rb +32 -0
- data/spec/support/ncoverreporttestdata.rb +26 -0
- data/spec/support/spec_helper.rb +15 -0
- data/spec/support/test.yml +4 -0
- data/spec/support/zip/files/subfolder/sub file.txt +1 -0
- data/spec/support/zip/files/testfile.txt +1 -0
- data/spec/support/ziptestdata.rb +8 -0
- data/spec/yamlconfig_spec.rb +62 -0
- data/spec/zip_spec.rb +18 -0
- data/spec/ziptask_spec.rb +31 -0
- data/yaml_autoconfig_test.yml +1 -0
- metadata +262 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
|
|
2
|
+
require 'albacore/ncoverreport'
|
|
3
|
+
require 'rake/ncoverreporttask'
|
|
4
|
+
require 'tasklib_patch'
|
|
5
|
+
|
|
6
|
+
describe Albacore::NCoverReportTask, "when running" do
|
|
7
|
+
before :all do
|
|
8
|
+
task = Albacore::NCoverReportTask.new() do |t|
|
|
9
|
+
@yielded_object = t
|
|
10
|
+
end
|
|
11
|
+
task.extend(TasklibPatch)
|
|
12
|
+
Rake::Task[:ncoverreport].invoke
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should yield the ncover report api" do
|
|
16
|
+
@yielded_object.kind_of?(NCoverReport).should == true
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
describe Albacore::NCoverReportTask, "when execution fails" do
|
|
21
|
+
before :all do
|
|
22
|
+
@task = Albacore::NCoverReportTask.new(:failingtask)
|
|
23
|
+
@task.extend(TasklibPatch)
|
|
24
|
+
@task.fail
|
|
25
|
+
Rake::Task["failingtask"].invoke
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should fail the rake task" do
|
|
29
|
+
@task.task_failed.should == true
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
|
|
2
|
+
require 'albacore/nunittestrunner'
|
|
3
|
+
require 'rake/nunittask'
|
|
4
|
+
require 'tasklib_patch'
|
|
5
|
+
|
|
6
|
+
describe Albacore::NUnitTask, "when running" do
|
|
7
|
+
before :all do
|
|
8
|
+
task = Albacore::NUnitTask.new() do |t|
|
|
9
|
+
@yielded_object = t
|
|
10
|
+
end
|
|
11
|
+
task.extend(TasklibPatch)
|
|
12
|
+
Rake::Task[:nunit].invoke
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should yield the nunit api" do
|
|
16
|
+
@yielded_object.kind_of?(NUnitTestRunner).should be_true
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
describe Albacore::NUnitTask, "when execution fails" do
|
|
21
|
+
before :all do
|
|
22
|
+
@task = Albacore::NUnitTask.new(:failingtask)
|
|
23
|
+
@task.extend(TasklibPatch)
|
|
24
|
+
@task.fail
|
|
25
|
+
Rake::Task["failingtask"].invoke
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should fail the rake task" do
|
|
29
|
+
@task.task_failed.should == true
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module SystemPatch
|
|
2
|
+
attr_accessor :disable_system, :force_system_failure
|
|
3
|
+
|
|
4
|
+
def initialize
|
|
5
|
+
@disable_system = false
|
|
6
|
+
@force_command_failure = false
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def system(cmd)
|
|
10
|
+
$system_command = cmd
|
|
11
|
+
result = true
|
|
12
|
+
result = super(cmd) if !disable_system
|
|
13
|
+
return false if @force_system_failure
|
|
14
|
+
return result
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
|
|
2
|
+
require 'rake/renametask'
|
|
3
|
+
require 'tasklib_patch'
|
|
4
|
+
|
|
5
|
+
describe Albacore::RenameTask, "when running" do
|
|
6
|
+
before :all do
|
|
7
|
+
task = Albacore::RenameTask.new() do |t|
|
|
8
|
+
@yielded_object = t
|
|
9
|
+
end
|
|
10
|
+
task.extend(TasklibPatch)
|
|
11
|
+
Rake::Task[:rename].invoke
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
it "should yield the rename api" do
|
|
15
|
+
@yielded_object.kind_of?(Albacore::RenameTask).should be_true
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
describe Albacore::RenameTask, "when execution fails" do
|
|
20
|
+
before :all do
|
|
21
|
+
@task = Albacore::RenameTask.new(:failingtask)
|
|
22
|
+
@task.extend(TasklibPatch)
|
|
23
|
+
@task.fail
|
|
24
|
+
Rake::Task["failingtask"].invoke
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it "should fail the rake task" do
|
|
28
|
+
@task.task_failed.should == true
|
|
29
|
+
end
|
|
30
|
+
end
|
data/spec/sftp_spec.rb
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
|
|
2
|
+
require 'albacore/sftp'
|
|
3
|
+
|
|
4
|
+
describe Sftp, 'when uploading files over sftp' do
|
|
5
|
+
before :each do
|
|
6
|
+
@sftpstub = Net::SFTP::Session.stub_instance(:upload! => nil)
|
|
7
|
+
Net::SFTP.stub_method(:start).yields(@sftpstub)
|
|
8
|
+
|
|
9
|
+
@sftp = Sftp.new
|
|
10
|
+
@sftp.server="server"
|
|
11
|
+
@sftp.username="user"
|
|
12
|
+
@sftp.password="secret"
|
|
13
|
+
|
|
14
|
+
@sftp.upload_files = {
|
|
15
|
+
"some.file" => "./somefolder/some.file",
|
|
16
|
+
"another.file" => "another/folder/another.file"
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@sftp.upload
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "should attempt to open a connection with the supplied connection information" do
|
|
23
|
+
Net::SFTP.should have_received(:start).with("server", "user", :password => "secret")
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
it "should upload the local files to the remote destination" do
|
|
27
|
+
@sftpstub.should have_received(:upload!).with("some.file", "./somefolder/some.file")
|
|
28
|
+
@sftpstub.should have_received(:upload!).with("another.file", "another/folder/another.file")
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
|
|
2
|
+
require 'albacore/sftp'
|
|
3
|
+
require 'rake/sftptask'
|
|
4
|
+
require 'tasklib_patch'
|
|
5
|
+
|
|
6
|
+
describe Albacore::SftpTask, "when running" do
|
|
7
|
+
before :all do
|
|
8
|
+
@sftpstub = Net::SFTP::Session.stub_instance(:upload! => nil)
|
|
9
|
+
Net::SFTP.stub_method(:start).yields(@sftpstub)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
before :each do
|
|
13
|
+
task = Albacore::SftpTask.new() do |t|
|
|
14
|
+
@yielded_object = t
|
|
15
|
+
end
|
|
16
|
+
task.extend(TasklibPatch)
|
|
17
|
+
Rake::Task[:sftp].invoke
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
it "should yield the sftp api" do
|
|
21
|
+
@yielded_object.kind_of?(Sftp).should == true
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
describe Albacore::SftpTask, "when execution fails" do
|
|
26
|
+
before :all do
|
|
27
|
+
@sftpstub = Net::SFTP::Session.stub_instance(:upload! => nil)
|
|
28
|
+
Net::SFTP.stub_method(:start).yields(@sftpstub)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
before :each do
|
|
32
|
+
@task = Albacore::SftpTask.new(:failingtask)
|
|
33
|
+
@task.extend(TasklibPatch)
|
|
34
|
+
@task.fail
|
|
35
|
+
Rake::Task["failingtask"].invoke
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it "should fail the rake task" do
|
|
39
|
+
@task.task_failed.should be_true
|
|
40
|
+
end
|
|
41
|
+
end
|
data/spec/sqlcmd_spec.rb
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
|
|
2
|
+
require 'albacore/sqlcmd'
|
|
3
|
+
|
|
4
|
+
describe SQLCmd, "when running a script file against a database with authentication information" do
|
|
5
|
+
before :all do
|
|
6
|
+
cmd = SQLCmd.new
|
|
7
|
+
cmd.path_to_command = "sqlcmd.exe"
|
|
8
|
+
cmd.log_level = :verbose
|
|
9
|
+
cmd.extend(SystemPatch)
|
|
10
|
+
cmd.disable_system = true
|
|
11
|
+
|
|
12
|
+
cmd.server="a server"
|
|
13
|
+
cmd.database="a database"
|
|
14
|
+
cmd.username="some user"
|
|
15
|
+
cmd.password="shh! it's a secret!"
|
|
16
|
+
cmd.scripts << "somescript.sql"
|
|
17
|
+
|
|
18
|
+
cmd.run
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should specify the location of the sqlcmd exe" do
|
|
22
|
+
$system_command.should include("sqlcmd.exe")
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it "should specify the script file" do
|
|
26
|
+
$system_command.should include("-i \"somescript.sql\"")
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
it "should specify the server" do
|
|
30
|
+
$system_command.should include("-S \"a server\"")
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "should specify the database" do
|
|
34
|
+
$system_command.should include("-d \"a database\"")
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "should specify the username" do
|
|
38
|
+
$system_command.should include("-U \"some user\"")
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
it "should specify the password" do
|
|
42
|
+
$system_command.should include("-P \"shh! it's a secret!\"")
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
describe SQLCmd, "when running with no command path specified" do
|
|
47
|
+
before :all do
|
|
48
|
+
strio = StringIO.new
|
|
49
|
+
@cmd = SQLCmd.new
|
|
50
|
+
@cmd.log_level = :verbose
|
|
51
|
+
@cmd.log_device = strio
|
|
52
|
+
@cmd.extend(SystemPatch)
|
|
53
|
+
@cmd.disable_system = true
|
|
54
|
+
|
|
55
|
+
@cmd.run
|
|
56
|
+
@log_data = strio.string
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
it "should fail" do
|
|
60
|
+
@cmd.failed.should be_true
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
it "should log a failure message" do
|
|
64
|
+
@log_data.should include('SQLCmd.path_to_command cannot be nil.')
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
describe SQLCmd, "when execution of sqlcmd fails" do
|
|
69
|
+
before :all do
|
|
70
|
+
strio = StringIO.new
|
|
71
|
+
@cmd = SQLCmd.new
|
|
72
|
+
@cmd.path_to_command="sqlcmd.exe"
|
|
73
|
+
@cmd.log_level = :verbose
|
|
74
|
+
@cmd.log_device = strio
|
|
75
|
+
@cmd.extend(SystemPatch)
|
|
76
|
+
@cmd.disable_system = true
|
|
77
|
+
@cmd.force_system_failure = true
|
|
78
|
+
|
|
79
|
+
@cmd.run
|
|
80
|
+
@log_data = strio.string
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
it "should fail" do
|
|
85
|
+
@cmd.failed.should be_true
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
it "should log a failure message" do
|
|
89
|
+
@log_data.should include('SQLCmd Failed. See Build Log For Detail.')
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
describe SQLCmd, "when running multiple script files" do
|
|
94
|
+
before :all do
|
|
95
|
+
cmd = SQLCmd.new
|
|
96
|
+
cmd.path_to_command = "sqlcmd.exe"
|
|
97
|
+
cmd.log_level = :verbose
|
|
98
|
+
cmd.extend(SystemPatch)
|
|
99
|
+
cmd.disable_system = true
|
|
100
|
+
|
|
101
|
+
cmd.scripts << "did you get.sql"
|
|
102
|
+
cmd.scripts << "that thing.sql"
|
|
103
|
+
cmd.scripts << "i sent you.sql"
|
|
104
|
+
|
|
105
|
+
cmd.run
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
it "should specify the first script file" do
|
|
109
|
+
$system_command.should include("-i \"did you get.sql\"")
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
it "should specify the second script file" do
|
|
113
|
+
$system_command.should include("-i \"that thing.sql\"")
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
it "should specify the third script file" do
|
|
117
|
+
$system_command.should include("-i \"i sent you.sql\"")
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
describe SQLCmd, "when running with variables specified" do
|
|
122
|
+
before :all do
|
|
123
|
+
cmd = SQLCmd.new
|
|
124
|
+
cmd.path_to_command = "sqlcmd.exe"
|
|
125
|
+
cmd.log_level = :verbose
|
|
126
|
+
cmd.extend(SystemPatch)
|
|
127
|
+
cmd.disable_system = true
|
|
128
|
+
cmd.scripts << "somescript.sql"
|
|
129
|
+
|
|
130
|
+
cmd.variables = {:myvar => "my value", :another_var => :another_value}
|
|
131
|
+
|
|
132
|
+
cmd.run
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
it "should supply the variables to sqlcmd" do
|
|
136
|
+
$system_command.should include("-v myvar=my value")
|
|
137
|
+
$system_command.should include("-v another_var=another_value")
|
|
138
|
+
end
|
|
139
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
|
|
2
|
+
require 'albacore/sqlcmd'
|
|
3
|
+
require 'rake/sqlcmdtask'
|
|
4
|
+
require 'tasklib_patch'
|
|
5
|
+
|
|
6
|
+
describe Albacore::SQLCmdTask, "when running" do
|
|
7
|
+
before :all do
|
|
8
|
+
task = Albacore::SQLCmdTask.new() do |t|
|
|
9
|
+
@yielded_object = t
|
|
10
|
+
end
|
|
11
|
+
task.extend(TasklibPatch)
|
|
12
|
+
Rake::Task[:sqlcmd].invoke
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should yield the sqlcmd api" do
|
|
16
|
+
@yielded_object.kind_of?(SQLCmd).should == true
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
describe Albacore::SQLCmdTask, "when execution fails" do
|
|
21
|
+
before :all do
|
|
22
|
+
@task = Albacore::SQLCmdTask.new(:failingtask)
|
|
23
|
+
@task.extend(TasklibPatch)
|
|
24
|
+
@task.fail
|
|
25
|
+
Rake::Task["failingtask"].invoke
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it "should fail the rake task" do
|
|
29
|
+
@task.task_failed.should be_true
|
|
30
|
+
end
|
|
31
|
+
end
|
data/spec/ssh_spec.rb
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
|
|
2
|
+
require 'albacore/ssh'
|
|
3
|
+
|
|
4
|
+
describe Ssh, 'when executing a command over ssh' do
|
|
5
|
+
before :each do
|
|
6
|
+
@sshstub = Net::SSH::Connection::Session.stub_instance(:exec! => nil)
|
|
7
|
+
Net::SSH.stub_method(:start, &lambda{}).yields(@sshstub)
|
|
8
|
+
|
|
9
|
+
@ssh = Ssh.new
|
|
10
|
+
@ssh.server="server"
|
|
11
|
+
@ssh.username="user"
|
|
12
|
+
@ssh.password="secret"
|
|
13
|
+
@ssh.commands="execute THIS!"
|
|
14
|
+
|
|
15
|
+
@ssh.execute
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
it "should attempt to open a connection with the supplied connection information" do
|
|
19
|
+
Net::SSH.should have_received(:start)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
it "should execute the command" do
|
|
23
|
+
@sshstub.should have_received(:exec!)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
describe Ssh, "when executing multiple commands over ssh" do
|
|
28
|
+
before :each do
|
|
29
|
+
@sshstub = Net::SSH::Connection::Session.stub_instance(:exec! => nil)
|
|
30
|
+
Net::SSH.stub_method(:start, &lambda{}).yields(@sshstub)
|
|
31
|
+
|
|
32
|
+
@ssh = Ssh.new
|
|
33
|
+
@ssh.server="server"
|
|
34
|
+
@ssh.username="user"
|
|
35
|
+
@ssh.password="secret"
|
|
36
|
+
|
|
37
|
+
@ssh.commands << "execute THIS!"
|
|
38
|
+
@ssh.commands << "another execution"
|
|
39
|
+
|
|
40
|
+
@ssh.execute
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
it "should execute all of the specified commands" do
|
|
44
|
+
@sshstub.should have_received(:exec!).twice
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
end
|
|
48
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'support', 'spec_helper')
|
|
2
|
+
require 'albacore/ssh'
|
|
3
|
+
require 'rake/sshtask'
|
|
4
|
+
require 'tasklib_patch'
|
|
5
|
+
|
|
6
|
+
describe Albacore::SshTask, "when running" do
|
|
7
|
+
before :all do
|
|
8
|
+
Net::SSH.stub_method(:start, &lambda{}).yields(@sshstub)
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
before :each do
|
|
12
|
+
task = Albacore::SshTask.new() do |t|
|
|
13
|
+
@yielded_object = t
|
|
14
|
+
end
|
|
15
|
+
task.extend(TasklibPatch)
|
|
16
|
+
Rake::Task[:ssh].invoke
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should yield the ssh api" do
|
|
20
|
+
@yielded_object.kind_of?(Ssh).should == true
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
describe Albacore::SshTask, "when execution fails" do
|
|
25
|
+
before :all do
|
|
26
|
+
Net::SSH.stub_method(:start, &lambda{}).yields(@sshstub)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
before :each do
|
|
30
|
+
@task = Albacore::SshTask.new(:failingtask)
|
|
31
|
+
@task.extend(TasklibPatch)
|
|
32
|
+
@task.fail
|
|
33
|
+
Rake::Task["failingtask"].invoke
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "should fail the rake task" do
|
|
37
|
+
@task.task_failed.should be_true
|
|
38
|
+
end
|
|
39
|
+
end
|