rake-funnel 0.3.2.pre → 0.4.0.pre

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.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +2 -2
  3. data/Gemfile +4 -0
  4. data/README.md +2 -2
  5. data/lib/rake/funnel/ambiguous_file_error.rb +31 -29
  6. data/lib/rake/funnel/execution_error.rb +28 -26
  7. data/lib/rake/funnel/extensions/case/camel_case.rb +24 -19
  8. data/lib/rake/funnel/extensions/case/pascal_case.rb +24 -19
  9. data/lib/rake/funnel/extensions/case.rb +3 -3
  10. data/lib/rake/funnel/extensions/common_path.rb +60 -52
  11. data/lib/rake/funnel/extensions/disable_colors.rb +33 -27
  12. data/lib/rake/funnel/extensions/rexml.rb +27 -23
  13. data/lib/rake/funnel/extensions/shell.rb +92 -56
  14. data/lib/rake/funnel/extensions/windows_path.rb +15 -11
  15. data/lib/rake/funnel/framework.rb +11 -16
  16. data/lib/rake/funnel/integration/progress_report.rb +72 -70
  17. data/lib/rake/funnel/integration/sync_output.rb +12 -8
  18. data/lib/rake/funnel/integration/teamcity/nunit_plugin.rb +61 -55
  19. data/lib/rake/funnel/integration/teamcity/progress_report.rb +39 -33
  20. data/lib/rake/funnel/integration/teamcity/service_messages.rb +46 -40
  21. data/lib/rake/funnel/integration/teamcity/teamcity.rb +19 -15
  22. data/lib/rake/funnel/integration/teamcity.rb +3 -5
  23. data/lib/rake/funnel/support/argument_mapper/key_value_pair.rb +16 -10
  24. data/lib/rake/funnel/support/argument_mapper/styles/default.rb +39 -31
  25. data/lib/rake/funnel/support/argument_mapper/styles/msbuild.rb +41 -33
  26. data/lib/rake/funnel/support/argument_mapper/styles/msdeploy.rb +55 -47
  27. data/lib/rake/funnel/support/argument_mapper/styles/nunit.rb +41 -33
  28. data/lib/rake/funnel/support/argument_mapper/styles.rb +3 -5
  29. data/lib/rake/funnel/support/argument_mapper/switch.rb +16 -10
  30. data/lib/rake/funnel/support/argument_mapper/value.rb +16 -10
  31. data/lib/rake/funnel/support/assembly_version/from_version_files.rb +39 -35
  32. data/lib/rake/funnel/support/assembly_version/languages/cs +5 -5
  33. data/lib/rake/funnel/support/assembly_version/languages/fs +12 -12
  34. data/lib/rake/funnel/support/assembly_version/languages/vb +5 -5
  35. data/lib/rake/funnel/support/assembly_version_writer.rb +56 -52
  36. data/lib/rake/funnel/support/binary_version_reader.rb +37 -32
  37. data/lib/rake/funnel/support/copier.rb +31 -27
  38. data/lib/rake/funnel/support/environments/loader.rb +46 -40
  39. data/lib/rake/funnel/support/environments.rb +3 -3
  40. data/lib/rake/funnel/support/internal/finder.rb +55 -51
  41. data/lib/rake/funnel/support/internal/instantiate_symbol.rb +38 -34
  42. data/lib/rake/funnel/support/mapper.rb +57 -53
  43. data/lib/rake/funnel/support/mono.rb +21 -17
  44. data/lib/rake/funnel/support/msbuild/build_tool.rb +30 -24
  45. data/lib/rake/funnel/support/msbuild.rb +3 -3
  46. data/lib/rake/funnel/support/msdeploy/registry_patch.rb +90 -84
  47. data/lib/rake/funnel/support/msdeploy.rb +3 -3
  48. data/lib/rake/funnel/support/patch.rb +41 -37
  49. data/lib/rake/funnel/support/specs_remover.rb +66 -62
  50. data/lib/rake/funnel/support/template_engine.rb +30 -26
  51. data/lib/rake/funnel/support/timing/report.rb +95 -89
  52. data/lib/rake/funnel/support/timing/statistics.rb +32 -26
  53. data/lib/rake/funnel/support/timing.rb +3 -3
  54. data/lib/rake/funnel/support/version_info.rb +103 -72
  55. data/lib/rake/funnel/support/which.rb +19 -15
  56. data/lib/rake/funnel/support/zipper.rb +53 -49
  57. data/lib/rake/funnel/tasks/assembly_version.rb +44 -40
  58. data/lib/rake/funnel/tasks/bin_path.rb +45 -41
  59. data/lib/rake/funnel/tasks/copy.rb +43 -39
  60. data/lib/rake/funnel/tasks/environments.rb +89 -89
  61. data/lib/rake/funnel/tasks/msbuild.rb +55 -51
  62. data/lib/rake/funnel/tasks/msdeploy.rb +54 -50
  63. data/lib/rake/funnel/tasks/nunit.rb +52 -48
  64. data/lib/rake/funnel/tasks/paket.rb +51 -47
  65. data/lib/rake/funnel/tasks/quick_template.rb +53 -49
  66. data/lib/rake/funnel/tasks/side_by_side_specs.rb +41 -37
  67. data/lib/rake/funnel/tasks/timing.rb +108 -104
  68. data/lib/rake/funnel/tasks/zip.rb +46 -42
  69. data/lib/rake/funnel/version.rb +1 -1
  70. data/lib/rake/funnel.rb +7 -7
  71. data/rake-funnel.gemspec +12 -3
  72. data/spec/rake/funnel/execution_error_spec.rb +67 -67
  73. data/spec/rake/funnel/extensions/case/camel_case_spec.rb +17 -17
  74. data/spec/rake/funnel/extensions/case/pascal_case_spec.rb +17 -17
  75. data/spec/rake/funnel/extensions/common_path_spec.rb +56 -56
  76. data/spec/rake/funnel/extensions/disable_colors_spec.rb +33 -33
  77. data/spec/rake/funnel/extensions/rexml_spec.rb +20 -20
  78. data/spec/rake/funnel/extensions/shell_spec.rb +237 -237
  79. data/spec/rake/funnel/extensions/windows_path_spec.rb +5 -5
  80. data/spec/rake/funnel/integration/progress_report_spec.rb +149 -149
  81. data/spec/rake/funnel/integration/sync_output_spec.rb +16 -16
  82. data/spec/rake/funnel/integration/teamcity/nunit_plugin_spec.rb +110 -110
  83. data/spec/rake/funnel/integration/teamcity/progress_report_spec.rb +174 -174
  84. data/spec/rake/funnel/integration/teamcity/service_messages_spec.rb +136 -136
  85. data/spec/rake/funnel/integration/teamcity/teamcity_spec.rb +34 -34
  86. data/spec/rake/funnel/support/argument_mapper/styles/msdeploy_spec.rb +222 -222
  87. data/spec/rake/funnel/support/argument_mapper/styles/nunit_spec.rb +25 -25
  88. data/spec/rake/funnel/support/argument_mapper/styles/styles_spec.rb +214 -214
  89. data/spec/rake/funnel/support/assembly_version/from_version_files_spec.rb +66 -61
  90. data/spec/rake/funnel/support/assembly_version_writer_spec.rb +140 -140
  91. data/spec/rake/funnel/support/binary_version_reader_spec.rb +29 -29
  92. data/spec/rake/funnel/support/copier_spec.rb +58 -58
  93. data/spec/rake/funnel/support/environments/loader_spec.rb +143 -143
  94. data/spec/rake/funnel/support/internal/finder_spec.rb +229 -229
  95. data/spec/rake/funnel/support/internal/instantiate_symbol_spec.rb +182 -183
  96. data/spec/rake/funnel/support/mapper_spec.rb +87 -87
  97. data/spec/rake/funnel/support/mono_spec.rb +57 -57
  98. data/spec/rake/funnel/support/msbuild/build_tool_spec.rb +21 -21
  99. data/spec/rake/funnel/support/msdeploy/registry_patch_spec.rb +139 -139
  100. data/spec/rake/funnel/support/patch_spec.rb +108 -108
  101. data/spec/rake/funnel/support/specs_remover/Sample.csproj +28 -28
  102. data/spec/rake/funnel/support/specs_remover_spec.rb +116 -116
  103. data/spec/rake/funnel/support/template_engine_spec.rb +65 -65
  104. data/spec/rake/funnel/support/timing/report_spec.rb +129 -129
  105. data/spec/rake/funnel/support/version_info_spec.rb +333 -228
  106. data/spec/rake/funnel/support/which_spec.rb +65 -65
  107. data/spec/rake/funnel/support/zipper_spec.rb +77 -77
  108. data/spec/rake/funnel/tasks/assembly_version_spec.rb +45 -45
  109. data/spec/rake/funnel/tasks/bin_path_spec.rb +52 -52
  110. data/spec/rake/funnel/tasks/copy_spec.rb +44 -44
  111. data/spec/rake/funnel/tasks/environments_spec.rb +249 -247
  112. data/spec/rake/funnel/tasks/msbuild_spec.rb +91 -91
  113. data/spec/rake/funnel/tasks/msdeploy_spec.rb +220 -220
  114. data/spec/rake/funnel/tasks/nunit_spec.rb +74 -74
  115. data/spec/rake/funnel/tasks/paket_spec.rb +140 -142
  116. data/spec/rake/funnel/tasks/quick_template_spec.rb +62 -62
  117. data/spec/rake/funnel/tasks/side_by_side_specs_spec.rb +58 -58
  118. data/spec/rake/funnel/tasks/timing_spec.rb +133 -133
  119. data/spec/rake/funnel/tasks/zip_spec.rb +50 -50
  120. data/spec/spec_helper.rb +43 -33
  121. metadata +2 -3
  122. data/lib/rake/funnel/support/side_by_side_specs.rb +0 -3
@@ -1,142 +1,140 @@
1
- include Rake
2
- include Rake::Funnel::Support
3
-
4
- describe Rake::Funnel::Tasks::Paket do
5
- before {
6
- Task.clear
7
- }
8
-
9
- describe 'defaults' do
10
- its(:name) { should == :paket }
11
- its(:paket) { should == '.paket/paket.exe' }
12
- its(:paket_args) { should == 'restore' }
13
- its(:bootstrapper) { should == '.paket/paket.bootstrapper.exe' }
14
- its(:bootstrapper_args) { should == nil }
15
- end
16
-
17
- describe 'execution' do
18
- before {
19
- allow(subject).to receive(:sh)
20
- allow(Mono).to receive(:invocation).and_wrap_original do |_original_method, *args, &_block|
21
- args.compact
22
- end
23
- }
24
-
25
- context 'overriding defaults' do
26
- subject {
27
- described_class.new do |t|
28
- t.bootstrapper = 'custom bootstrapper.exe'
29
- t.bootstrapper_args = %w(arg1 arg2)
30
- t.paket = 'custom paket.exe'
31
- t.paket_args = %w(arg1 arg2)
32
- end
33
- }
34
-
35
- before {
36
- allow(File).to receive(:exist?).and_return(false)
37
- allow(subject).to receive(:sh)
38
- }
39
-
40
- before {
41
- Task[subject.name].invoke
42
- }
43
-
44
- it 'should use custom bootstrapper' do
45
- expect(subject).to have_received(:sh).with(subject.bootstrapper, subject.bootstrapper_args)
46
- end
47
-
48
- it 'should use custom paket' do
49
- expect(subject).to have_received(:sh).with(subject.paket, subject.paket_args)
50
- end
51
- end
52
-
53
- describe 'mono invocation' do
54
- before {
55
- Task[subject.name].invoke
56
- }
57
-
58
- it 'should use mono invocation for bootstrapper' do
59
- expect(Mono).to have_received(:invocation).with(subject.bootstrapper, subject.bootstrapper_args)
60
- end
61
-
62
- it 'should use mono invocation for paket' do
63
- expect(Mono).to have_received(:invocation).with(subject.paket, subject.paket_args)
64
- end
65
- end
66
-
67
- describe 'optional download' do
68
- before {
69
- allow(File).to receive(:exist?).with(subject.paket).and_return(paket_exists)
70
- allow(subject).to receive(:sh).with(subject.bootstrapper)
71
- }
72
-
73
- context 'success' do
74
- before {
75
- Task[subject.name].invoke
76
- }
77
-
78
- context 'paket.exe exists' do
79
- let(:paket_exists) { true }
80
-
81
- it 'should not run bootstrapper' do
82
- expect(subject).not_to have_received(:sh).with(subject.bootstrapper)
83
- end
84
-
85
- it 'should run paket' do
86
- expect(subject).to have_received(:sh).with(subject.paket, subject.paket_args)
87
- end
88
- end
89
-
90
- context 'paket.exe does not exist' do
91
- let(:paket_exists) { false }
92
-
93
- it 'should run bootstrapper' do
94
- expect(subject).to have_received(:sh).with(subject.bootstrapper)
95
- end
96
-
97
- it 'should run paket' do
98
- expect(subject).to have_received(:sh).with(subject.paket, subject.paket_args)
99
- end
100
- end
101
- end
102
-
103
- context 'failure' do
104
-
105
-
106
- context 'paket.exe exists' do
107
- let(:paket_exists) { true }
108
-
109
- context 'paket failed' do
110
- before {
111
- allow(subject).to receive(:sh).with(subject.paket, anything).and_raise
112
- }
113
-
114
- it 'should fail' do
115
- expect { Task[subject.name].invoke }.to raise_error
116
- end
117
- end
118
- end
119
-
120
- context 'paket.exe does not exist' do
121
- let(:paket_exists) { false }
122
-
123
- context 'bootstrapper failed' do
124
- before {
125
- allow(subject).to receive(:sh).with(subject.bootstrapper).and_raise
126
- }
127
-
128
- it 'should not run paket' do
129
- Task[subject.name].invoke rescue nil
130
-
131
- expect(subject).not_to have_received(:sh).with(subject.paket, subject.paket_args)
132
- end
133
-
134
- it 'should fail' do
135
- expect { Task[subject.name].invoke }.to raise_error
136
- end
137
- end
138
- end
139
- end
140
- end
141
- end
142
- end
1
+ include Rake
2
+ include Rake::Funnel::Support
3
+
4
+ describe Rake::Funnel::Tasks::Paket do
5
+ before {
6
+ Task.clear
7
+ }
8
+
9
+ describe 'defaults' do
10
+ its(:name) { should == :paket }
11
+ its(:paket) { should == '.paket/paket.exe' }
12
+ its(:paket_args) { should == 'restore' }
13
+ its(:bootstrapper) { should == '.paket/paket.bootstrapper.exe' }
14
+ its(:bootstrapper_args) { should be_nil }
15
+ end
16
+
17
+ describe 'execution' do
18
+ before {
19
+ allow(subject).to receive(:sh)
20
+ allow(Mono).to receive(:invocation).and_wrap_original do |_original_method, *args, &_block|
21
+ args.compact
22
+ end
23
+ }
24
+
25
+ context 'overriding defaults' do
26
+ subject {
27
+ described_class.new do |t|
28
+ t.bootstrapper = 'custom bootstrapper.exe'
29
+ t.bootstrapper_args = %w(arg1 arg2)
30
+ t.paket = 'custom paket.exe'
31
+ t.paket_args = %w(arg1 arg2)
32
+ end
33
+ }
34
+
35
+ before {
36
+ allow(File).to receive(:exist?).and_return(false)
37
+ allow(subject).to receive(:sh)
38
+ }
39
+
40
+ before {
41
+ Task[subject.name].invoke
42
+ }
43
+
44
+ it 'should use custom bootstrapper' do
45
+ expect(subject).to have_received(:sh).with(subject.bootstrapper, subject.bootstrapper_args)
46
+ end
47
+
48
+ it 'should use custom paket' do
49
+ expect(subject).to have_received(:sh).with(subject.paket, subject.paket_args)
50
+ end
51
+ end
52
+
53
+ describe 'mono invocation' do
54
+ before {
55
+ Task[subject.name].invoke
56
+ }
57
+
58
+ it 'should use mono invocation for bootstrapper' do
59
+ expect(Mono).to have_received(:invocation).with(subject.bootstrapper, subject.bootstrapper_args)
60
+ end
61
+
62
+ it 'should use mono invocation for paket' do
63
+ expect(Mono).to have_received(:invocation).with(subject.paket, subject.paket_args)
64
+ end
65
+ end
66
+
67
+ describe 'optional download' do
68
+ before {
69
+ allow(File).to receive(:exist?).with(subject.paket).and_return(paket_exists)
70
+ allow(subject).to receive(:sh).with(subject.bootstrapper)
71
+ }
72
+
73
+ context 'success' do
74
+ before {
75
+ Task[subject.name].invoke
76
+ }
77
+
78
+ context 'paket.exe exists' do
79
+ let(:paket_exists) { true }
80
+
81
+ it 'should not run bootstrapper' do
82
+ expect(subject).not_to have_received(:sh).with(subject.bootstrapper)
83
+ end
84
+
85
+ it 'should run paket' do
86
+ expect(subject).to have_received(:sh).with(subject.paket, subject.paket_args)
87
+ end
88
+ end
89
+
90
+ context 'paket.exe does not exist' do
91
+ let(:paket_exists) { false }
92
+
93
+ it 'should run bootstrapper' do
94
+ expect(subject).to have_received(:sh).with(subject.bootstrapper)
95
+ end
96
+
97
+ it 'should run paket' do
98
+ expect(subject).to have_received(:sh).with(subject.paket, subject.paket_args)
99
+ end
100
+ end
101
+ end
102
+
103
+ context 'failure' do
104
+ context 'paket.exe exists' do
105
+ let(:paket_exists) { true }
106
+
107
+ context 'paket failed' do
108
+ before {
109
+ allow(subject).to receive(:sh).with(subject.paket, anything).and_raise
110
+ }
111
+
112
+ it 'should fail' do
113
+ expect { Task[subject.name].invoke }.to raise_error
114
+ end
115
+ end
116
+ end
117
+
118
+ context 'paket.exe does not exist' do
119
+ let(:paket_exists) { false }
120
+
121
+ context 'bootstrapper failed' do
122
+ before {
123
+ allow(subject).to receive(:sh).with(subject.bootstrapper).and_raise
124
+ }
125
+
126
+ it 'should not run paket' do
127
+ Task[subject.name].invoke rescue nil
128
+
129
+ expect(subject).not_to have_received(:sh).with(subject.paket, subject.paket_args)
130
+ end
131
+
132
+ it 'should fail' do
133
+ expect { Task[subject.name].invoke }.to raise_error
134
+ end
135
+ end
136
+ end
137
+ end
138
+ end
139
+ end
140
+ end
@@ -1,62 +1,62 @@
1
- require 'tmpdir'
2
-
3
- include Rake
4
- include Rake::Funnel::Support
5
-
6
- describe Rake::Funnel::Tasks::QuickTemplate do
7
- before {
8
- Task.clear
9
- }
10
-
11
- describe 'defaults' do
12
- its(:name) { should == :template }
13
- its(:search_pattern) { should eq(%w(**/*.erb)) }
14
- its(:context) { should kind_of?(Binding) }
15
- end
16
-
17
- describe 'execution' do
18
- let(:templates) { %w(1.template two/2.template) }
19
-
20
- let(:finder) { double(Finder).as_null_object }
21
- let(:engine) { TemplateEngine }
22
-
23
- before {
24
- allow(finder).to receive(:all_or_default).and_return(templates)
25
- allow(Finder).to receive(:new).and_return(finder)
26
- allow(engine).to receive(:render).and_return('file content')
27
- allow(Rake).to receive(:rake_output_message)
28
- allow(File).to receive(:read).and_return('template content')
29
- allow(File).to receive(:write)
30
- }
31
-
32
- subject! { described_class.new }
33
-
34
- before {
35
- Task[subject.name].invoke
36
- }
37
-
38
- it 'should report created files' do
39
- templates.each do |template|
40
- expect(Rake).to have_received(:rake_output_message).with("Creating file #{template.ext}")
41
- end
42
- end
43
-
44
- it 'should read all templates' do
45
- templates.each do |template|
46
- expect(File).to have_received(:read).with(template)
47
- end
48
- end
49
-
50
- it 'should render all templates' do
51
- templates.each do |template|
52
- expect(engine).to have_received(:render).with('template content', template, subject.context)
53
- end
54
- end
55
-
56
- it 'should write all files' do
57
- templates.each do |template|
58
- expect(File).to have_received(:write).with(template.ext, 'file content')
59
- end
60
- end
61
- end
62
- end
1
+ require 'tmpdir'
2
+
3
+ include Rake
4
+ include Rake::Funnel::Support
5
+
6
+ describe Rake::Funnel::Tasks::QuickTemplate do
7
+ before {
8
+ Task.clear
9
+ }
10
+
11
+ describe 'defaults' do
12
+ its(:name) { should == :template }
13
+ its(:search_pattern) { should eq(%w(**/*.erb)) }
14
+ its(:context) { should be_an_instance_of(Binding) }
15
+ end
16
+
17
+ describe 'execution' do
18
+ let(:templates) { %w(1.template two/2.template) }
19
+
20
+ let(:finder) { double(Finder).as_null_object }
21
+ let(:engine) { TemplateEngine }
22
+
23
+ before {
24
+ allow(finder).to receive(:all_or_default).and_return(templates)
25
+ allow(Finder).to receive(:new).and_return(finder)
26
+ allow(engine).to receive(:render).and_return('file content')
27
+ allow(Rake).to receive(:rake_output_message)
28
+ allow(File).to receive(:read).and_return('template content')
29
+ allow(File).to receive(:write)
30
+ }
31
+
32
+ subject! { described_class.new }
33
+
34
+ before {
35
+ Task[subject.name].invoke
36
+ }
37
+
38
+ it 'should report created files' do
39
+ templates.each do |template|
40
+ expect(Rake).to have_received(:rake_output_message).with("Creating file #{template.ext}")
41
+ end
42
+ end
43
+
44
+ it 'should read all templates' do
45
+ templates.each do |template|
46
+ expect(File).to have_received(:read).with(template)
47
+ end
48
+ end
49
+
50
+ it 'should render all templates' do
51
+ templates.each do |template|
52
+ expect(engine).to have_received(:render).with('template content', template, subject.context)
53
+ end
54
+ end
55
+
56
+ it 'should write all files' do
57
+ templates.each do |template|
58
+ expect(File).to have_received(:write).with(template.ext, 'file content')
59
+ end
60
+ end
61
+ end
62
+ end
@@ -1,58 +1,58 @@
1
- require 'tmpdir'
2
-
3
- include Rake
4
- include Rake::Funnel::Support
5
-
6
- describe Rake::Funnel::Tasks::SideBySideSpecs do
7
- before {
8
- Task.clear
9
- }
10
-
11
- describe 'defaults' do
12
- its(:name) { should == :compile }
13
- its(:projects) { should == %w(**/*.csproj **/*.vbproj **/*.fsproj) }
14
- its(:references) { should == [] }
15
- its(:specs) { should == %w(*Specs.cs **/*Specs.cs *Tests.cs **/*Tests.cs) }
16
- its(:enabled) { should == false }
17
- end
18
-
19
- describe 'execution' do
20
- subject {
21
- described_class.new do |t|
22
- t.projects = %w(**/*.??proj)
23
- t.references = %w(Ref-1)
24
- t.specs = %w(*Specs.cs **/*Specs.cs)
25
- t.enabled = enabled
26
- end
27
- }
28
-
29
- before {
30
- allow(SpecsRemover).to receive(:remove)
31
- }
32
-
33
- before {
34
- Task[subject.name].invoke
35
- }
36
-
37
- context 'enabled' do
38
- let(:enabled) { true }
39
-
40
- it 'should use remover' do
41
- expect(SpecsRemover).to have_received(:remove)
42
- .with({
43
- projects: subject.projects,
44
- references: subject.references,
45
- specs: subject.specs
46
- })
47
- end
48
- end
49
-
50
- context 'disabled' do
51
- let(:enabled) { false }
52
-
53
- it 'should do nothing' do
54
- expect(SpecsRemover).not_to have_received(:remove)
55
- end
56
- end
57
- end
58
- end
1
+ require 'tmpdir'
2
+
3
+ include Rake
4
+ include Rake::Funnel::Support
5
+
6
+ describe Rake::Funnel::Tasks::SideBySideSpecs do
7
+ before {
8
+ Task.clear
9
+ }
10
+
11
+ describe 'defaults' do
12
+ its(:name) { should == :compile }
13
+ its(:projects) { should == %w(**/*.csproj **/*.vbproj **/*.fsproj) }
14
+ its(:references) { should == [] }
15
+ its(:specs) { should == %w(*Specs.cs **/*Specs.cs *Tests.cs **/*Tests.cs) }
16
+ its(:enabled) { should == false }
17
+ end
18
+
19
+ describe 'execution' do
20
+ subject {
21
+ described_class.new do |t|
22
+ t.projects = %w(**/*.??proj)
23
+ t.references = %w(Ref-1)
24
+ t.specs = %w(*Specs.cs **/*Specs.cs)
25
+ t.enabled = enabled
26
+ end
27
+ }
28
+
29
+ before {
30
+ allow(SpecsRemover).to receive(:remove)
31
+ }
32
+
33
+ before {
34
+ Task[subject.name].invoke
35
+ }
36
+
37
+ context 'enabled' do
38
+ let(:enabled) { true }
39
+
40
+ it 'should use remover' do
41
+ expect(SpecsRemover).to have_received(:remove)
42
+ .with({
43
+ projects: subject.projects,
44
+ references: subject.references,
45
+ specs: subject.specs
46
+ })
47
+ end
48
+ end
49
+
50
+ context 'disabled' do
51
+ let(:enabled) { false }
52
+
53
+ it 'should do nothing' do
54
+ expect(SpecsRemover).not_to have_received(:remove)
55
+ end
56
+ end
57
+ end
58
+ end