mcornick-jeweler 1.2.0
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/.gitignore +9 -0
- data/ChangeLog.markdown +111 -0
- data/LICENSE +20 -0
- data/README.markdown +185 -0
- data/ROADMAP +12 -0
- data/Rakefile +103 -0
- data/VERSION.yml +4 -0
- data/bin/jeweler +8 -0
- data/features/generator/cucumber.feature +83 -0
- data/features/generator/directory_layout.feature +76 -0
- data/features/generator/dotdocument.feature +14 -0
- data/features/generator/env_options.feature +9 -0
- data/features/generator/git.feature +94 -0
- data/features/generator/license.feature +11 -0
- data/features/generator/rakefile.feature +151 -0
- data/features/generator/readme.feature +12 -0
- data/features/generator/test.feature +41 -0
- data/features/generator/test_helper.feature +49 -0
- data/features/placeholder.feature +5 -0
- data/features/step_definitions/debug_steps.rb +6 -0
- data/features/step_definitions/filesystem_steps.rb +68 -0
- data/features/step_definitions/generator_steps.rb +284 -0
- data/features/step_definitions/task_steps.rb +6 -0
- data/features/support/env.rb +29 -0
- data/features/tasks/build_gem.feature +9 -0
- data/features/tasks/version.feature +24 -0
- data/features/tasks/version_bumping.feature +33 -0
- data/jeweler.gemspec +225 -0
- data/lib/jeweler.rb +153 -0
- data/lib/jeweler/commands.rb +14 -0
- data/lib/jeweler/commands/build_gem.rb +31 -0
- data/lib/jeweler/commands/check_dependencies.rb +52 -0
- data/lib/jeweler/commands/install_gem.rb +40 -0
- data/lib/jeweler/commands/release.rb +86 -0
- data/lib/jeweler/commands/release_to_rubyforge.rb +51 -0
- data/lib/jeweler/commands/setup_rubyforge.rb +57 -0
- data/lib/jeweler/commands/validate_gemspec.rb +30 -0
- data/lib/jeweler/commands/version/base.rb +41 -0
- data/lib/jeweler/commands/version/bump_major.rb +13 -0
- data/lib/jeweler/commands/version/bump_minor.rb +12 -0
- data/lib/jeweler/commands/version/bump_patch.rb +14 -0
- data/lib/jeweler/commands/version/write.rb +12 -0
- data/lib/jeweler/commands/write_gemspec.rb +39 -0
- data/lib/jeweler/errors.rb +20 -0
- data/lib/jeweler/gemspec_helper.rb +79 -0
- data/lib/jeweler/generator.rb +306 -0
- data/lib/jeweler/generator/application.rb +54 -0
- data/lib/jeweler/generator/bacon_mixin.rb +43 -0
- data/lib/jeweler/generator/micronaut_mixin.rb +41 -0
- data/lib/jeweler/generator/minitest_mixin.rb +42 -0
- data/lib/jeweler/generator/options.rb +102 -0
- data/lib/jeweler/generator/rdoc_mixin.rb +9 -0
- data/lib/jeweler/generator/rspec_mixin.rb +42 -0
- data/lib/jeweler/generator/shoulda_mixin.rb +42 -0
- data/lib/jeweler/generator/testunit_mixin.rb +39 -0
- data/lib/jeweler/generator/yard_mixin.rb +14 -0
- data/lib/jeweler/rubyforge_tasks.rb +98 -0
- data/lib/jeweler/specification.rb +66 -0
- data/lib/jeweler/tasks.rb +135 -0
- data/lib/jeweler/templates/.document +5 -0
- data/lib/jeweler/templates/.gitignore +5 -0
- data/lib/jeweler/templates/LICENSE +20 -0
- data/lib/jeweler/templates/README.rdoc +18 -0
- data/lib/jeweler/templates/Rakefile +153 -0
- data/lib/jeweler/templates/bacon/flunking.rb +7 -0
- data/lib/jeweler/templates/bacon/helper.rb +8 -0
- data/lib/jeweler/templates/features/default.feature +9 -0
- data/lib/jeweler/templates/features/support/env.rb +8 -0
- data/lib/jeweler/templates/micronaut/flunking.rb +7 -0
- data/lib/jeweler/templates/micronaut/helper.rb +17 -0
- data/lib/jeweler/templates/minitest/flunking.rb +7 -0
- data/lib/jeweler/templates/minitest/helper.rb +11 -0
- data/lib/jeweler/templates/rspec/flunking.rb +7 -0
- data/lib/jeweler/templates/rspec/helper.rb +10 -0
- data/lib/jeweler/templates/shoulda/flunking.rb +7 -0
- data/lib/jeweler/templates/shoulda/helper.rb +10 -0
- data/lib/jeweler/templates/testunit/flunking.rb +7 -0
- data/lib/jeweler/templates/testunit/helper.rb +9 -0
- data/lib/jeweler/version_helper.rb +128 -0
- data/test/fixtures/bar/VERSION.yml +4 -0
- data/test/fixtures/bar/bin/foo_the_ultimate_bin +1 -0
- data/test/fixtures/bar/hey_include_me_in_gemspec +0 -0
- data/test/fixtures/bar/lib/foo_the_ultimate_lib.rb +1 -0
- data/test/fixtures/existing-project-with-version-plaintext/.document +5 -0
- data/test/fixtures/existing-project-with-version-plaintext/.gitignore +5 -0
- data/test/fixtures/existing-project-with-version-plaintext/LICENSE +20 -0
- data/test/fixtures/existing-project-with-version-plaintext/README.rdoc +7 -0
- data/test/fixtures/existing-project-with-version-plaintext/Rakefile +82 -0
- data/test/fixtures/existing-project-with-version-plaintext/VERSION +1 -0
- data/test/fixtures/existing-project-with-version-plaintext/existing-project-with-version.gemspec +29 -0
- data/test/fixtures/existing-project-with-version-plaintext/lib/existing_project_with_version.rb +0 -0
- data/test/fixtures/existing-project-with-version-plaintext/test/existing_project_with_version_test.rb +7 -0
- data/test/fixtures/existing-project-with-version-plaintext/test/test_helper.rb +10 -0
- data/test/fixtures/existing-project-with-version-yaml/.document +5 -0
- data/test/fixtures/existing-project-with-version-yaml/.gitignore +5 -0
- data/test/fixtures/existing-project-with-version-yaml/LICENSE +20 -0
- data/test/fixtures/existing-project-with-version-yaml/README.rdoc +7 -0
- data/test/fixtures/existing-project-with-version-yaml/Rakefile +82 -0
- data/test/fixtures/existing-project-with-version-yaml/VERSION.yml +4 -0
- data/test/fixtures/existing-project-with-version-yaml/bin/foo_the_ultimate_bin +0 -0
- data/test/fixtures/existing-project-with-version-yaml/existing-project-with-version.gemspec +29 -0
- data/test/fixtures/existing-project-with-version-yaml/lib/existing_project_with_version.rb +0 -0
- data/test/fixtures/existing-project-with-version-yaml/test/existing_project_with_version_test.rb +7 -0
- data/test/fixtures/existing-project-with-version-yaml/test/test_helper.rb +10 -0
- data/test/geminstaller.yml +12 -0
- data/test/jeweler/commands/test_build_gem.rb +72 -0
- data/test/jeweler/commands/test_install_gem.rb +74 -0
- data/test/jeweler/commands/test_release.rb +362 -0
- data/test/jeweler/commands/test_release_to_rubyforge.rb +157 -0
- data/test/jeweler/commands/test_setup_rubyforge.rb +182 -0
- data/test/jeweler/commands/test_validate_gemspec.rb +27 -0
- data/test/jeweler/commands/test_write_gemspec.rb +92 -0
- data/test/jeweler/commands/version/test_base.rb +32 -0
- data/test/jeweler/commands/version/test_bump_major.rb +22 -0
- data/test/jeweler/commands/version/test_bump_minor.rb +19 -0
- data/test/jeweler/commands/version/test_bump_patch.rb +20 -0
- data/test/jeweler/commands/version/test_write.rb +23 -0
- data/test/shoulda_macros/jeweler_macros.rb +35 -0
- data/test/test_application.rb +139 -0
- data/test/test_gemspec_helper.rb +40 -0
- data/test/test_generator.rb +166 -0
- data/test/test_generator_initialization.rb +156 -0
- data/test/test_generator_mixins.rb +18 -0
- data/test/test_helper.rb +159 -0
- data/test/test_jeweler.rb +174 -0
- data/test/test_options.rb +149 -0
- data/test/test_specification.rb +61 -0
- data/test/test_tasks.rb +35 -0
- data/test/test_version_helper.rb +153 -0
- metadata +283 -0
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Jeweler
|
4
|
+
module Commands
|
5
|
+
module Version
|
6
|
+
class TestBase < Test::Unit::TestCase
|
7
|
+
build_command_context "build for jeweler" do
|
8
|
+
setup do
|
9
|
+
@command = Jeweler::Commands::Version::Base.build_for(@jeweler)
|
10
|
+
end
|
11
|
+
|
12
|
+
should "assign repo" do
|
13
|
+
assert_equal @repo, @command.repo
|
14
|
+
end
|
15
|
+
|
16
|
+
should "assign version_helper" do
|
17
|
+
assert_equal @version_helper, @command.version_helper
|
18
|
+
end
|
19
|
+
|
20
|
+
should "assign gemspec" do
|
21
|
+
assert_equal @gemspec, @command.gemspec
|
22
|
+
end
|
23
|
+
|
24
|
+
should"assign commit" do
|
25
|
+
assert_equal @commit, @command.commit
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Jeweler
|
4
|
+
module Commands
|
5
|
+
module Version
|
6
|
+
class TestBumpMajor < Test::Unit::TestCase
|
7
|
+
|
8
|
+
should "call bump_major on version_helper in update_version" do
|
9
|
+
mock(version_helper = Object.new).bump_major
|
10
|
+
|
11
|
+
command = Jeweler::Commands::Version::BumpMajor.new
|
12
|
+
command.version_helper = version_helper
|
13
|
+
|
14
|
+
command.update_version
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Jeweler
|
4
|
+
module Commands
|
5
|
+
module Version
|
6
|
+
class TestBumpMinor < Test::Unit::TestCase
|
7
|
+
|
8
|
+
should "call bump_minor on version_helper in update_version" do
|
9
|
+
mock(version_helper = Object.new).bump_minor
|
10
|
+
|
11
|
+
command = Jeweler::Commands::Version::BumpMinor.new
|
12
|
+
command.version_helper = version_helper
|
13
|
+
|
14
|
+
command.update_version
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Jeweler
|
4
|
+
module Commands
|
5
|
+
module Version
|
6
|
+
class TestBumpPatch < Test::Unit::TestCase
|
7
|
+
|
8
|
+
should "call bump_patch on version_helper in update_version" do
|
9
|
+
mock(version_helper = Object.new).bump_patch
|
10
|
+
|
11
|
+
command = Jeweler::Commands::Version::BumpPatch.new
|
12
|
+
command.version_helper = version_helper
|
13
|
+
|
14
|
+
command.update_version
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Jeweler
|
4
|
+
module Commands
|
5
|
+
module Version
|
6
|
+
class TestWrite < Test::Unit::TestCase
|
7
|
+
|
8
|
+
should "call write_version on version_helper in update_version" do
|
9
|
+
mock(version_helper = Object.new).update_to 1, 2, 3
|
10
|
+
|
11
|
+
command = Jeweler::Commands::Version::Write.new
|
12
|
+
command.version_helper = version_helper
|
13
|
+
command.major = 1
|
14
|
+
command.minor = 2
|
15
|
+
command.patch = 3
|
16
|
+
|
17
|
+
command.update_version
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
class Test::Unit::TestCase
|
2
|
+
class << self
|
3
|
+
def should_have_major_version(version)
|
4
|
+
should "have major version of #{version}" do
|
5
|
+
assert_equal version, @jeweler.major_version
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
def should_have_minor_version(version)
|
10
|
+
should "have minor version of #{version}" do
|
11
|
+
assert_equal version, @jeweler.minor_version
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def should_have_patch_version(version)
|
16
|
+
should "have patch version of #{version}" do
|
17
|
+
assert_equal version, @jeweler.patch_version
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def should_be_version(version)
|
22
|
+
should "be version #{version}" do
|
23
|
+
assert_equal version, @jeweler.version
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def should_bump_version(major, minor, patch)
|
28
|
+
version = "#{major}.#{minor}.#{patch}"
|
29
|
+
should_have_major_version major
|
30
|
+
should_have_minor_version minor
|
31
|
+
should_have_patch_version patch
|
32
|
+
should_be_version version
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,139 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestApplication < Test::Unit::TestCase
|
4
|
+
def run_application(*arguments)
|
5
|
+
original_stdout = $stdout
|
6
|
+
original_stderr = $stderr
|
7
|
+
|
8
|
+
fake_stdout = StringIO.new
|
9
|
+
fake_stderr = StringIO.new
|
10
|
+
|
11
|
+
$stdout = fake_stdout
|
12
|
+
$stderr = fake_stderr
|
13
|
+
|
14
|
+
result = nil
|
15
|
+
begin
|
16
|
+
result = Jeweler::Generator::Application.run!(*arguments)
|
17
|
+
ensure
|
18
|
+
$stdout = original_stdout
|
19
|
+
$stderr = original_stderr
|
20
|
+
end
|
21
|
+
|
22
|
+
@stdout = fake_stdout.string
|
23
|
+
@stderr = fake_stderr.string
|
24
|
+
|
25
|
+
result
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.should_exit_with_code(code)
|
29
|
+
should "exit with code #{code}" do
|
30
|
+
assert_equal code, @result
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
context "called without any args" do
|
35
|
+
setup do
|
36
|
+
@result = run_application
|
37
|
+
end
|
38
|
+
|
39
|
+
should_exit_with_code 1
|
40
|
+
|
41
|
+
should 'display usage on stderr' do
|
42
|
+
assert_match 'Usage:', @stderr
|
43
|
+
end
|
44
|
+
|
45
|
+
should 'not display anything on stdout' do
|
46
|
+
assert_equal '', @stdout.squeeze.strip
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def build_generator(name = 'zomg', options = {:testing_framework => :shoulda})
|
51
|
+
stub(Git).global_config() do
|
52
|
+
{'user.name' => 'John Doe', 'user.email' => 'john@example.com', 'github.user' => 'johndoe', 'github.token' => 'yyz'}
|
53
|
+
end
|
54
|
+
|
55
|
+
Jeweler::Generator.new(name, options)
|
56
|
+
end
|
57
|
+
|
58
|
+
context "called with -h" do
|
59
|
+
setup do
|
60
|
+
@generator = build_generator
|
61
|
+
stub(@generator).run
|
62
|
+
stub(Jeweler::Generator).new { raise "Shouldn't have made this far"}
|
63
|
+
|
64
|
+
assert_nothing_raised do
|
65
|
+
@result = run_application("-h")
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
should_exit_with_code 1
|
70
|
+
|
71
|
+
should 'display usage on stderr' do
|
72
|
+
assert_match 'Usage:', @stderr
|
73
|
+
end
|
74
|
+
|
75
|
+
should 'not display anything on stdout' do
|
76
|
+
assert_equal '', @stdout.squeeze.strip
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
context "called with --invalid-argument" do
|
81
|
+
setup do
|
82
|
+
@generator = build_generator
|
83
|
+
stub(@generator).run
|
84
|
+
stub(Jeweler::Generator).new { raise "Shouldn't have made this far"}
|
85
|
+
|
86
|
+
assert_nothing_raised do
|
87
|
+
@result = run_application("--invalid-argument")
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
should_exit_with_code 1
|
92
|
+
|
93
|
+
should 'display invalid argument' do
|
94
|
+
assert_match '--invalid-argument', @stderr
|
95
|
+
end
|
96
|
+
|
97
|
+
should 'display usage on stderr' do
|
98
|
+
assert_match 'Usage:', @stderr
|
99
|
+
end
|
100
|
+
|
101
|
+
should 'not display anything on stdout' do
|
102
|
+
assert_equal '', @stdout.squeeze.strip
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
context "when called with repo name" do
|
107
|
+
setup do
|
108
|
+
@options = {:testing_framework => :shoulda, :documentation_framework => :rdoc}
|
109
|
+
@generator = build_generator('zomg', @options)
|
110
|
+
|
111
|
+
stub(@generator).run
|
112
|
+
stub(Jeweler::Generator).new { @generator }
|
113
|
+
end
|
114
|
+
|
115
|
+
should 'return exit code 0' do
|
116
|
+
result = run_application("zomg")
|
117
|
+
assert_equal 0, result
|
118
|
+
end
|
119
|
+
|
120
|
+
should 'create generator with repo name and no options' do
|
121
|
+
run_application("zomg")
|
122
|
+
|
123
|
+
assert_received Jeweler::Generator do |subject|
|
124
|
+
subject.new('zomg', @options)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
should 'run generator' do
|
129
|
+
run_application("zomg")
|
130
|
+
|
131
|
+
assert_received(@generator) {|subject| subject.run }
|
132
|
+
end
|
133
|
+
|
134
|
+
should 'not display usage on stderr' do
|
135
|
+
assert_no_match /Usage:/, @stderr
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestGemspecHelper < Test::Unit::TestCase
|
4
|
+
context "given a gemspec" do
|
5
|
+
setup do
|
6
|
+
@spec = build_spec
|
7
|
+
@helper = Jeweler::GemSpecHelper.new(@spec, File.dirname(__FILE__))
|
8
|
+
end
|
9
|
+
|
10
|
+
should 'have sane gemspec path' do
|
11
|
+
assert_equal "test/#{@spec.name}.gemspec", @helper.path
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
context "#write" do
|
16
|
+
setup do
|
17
|
+
@spec = build_spec
|
18
|
+
@helper = Jeweler::GemSpecHelper.new(@spec, File.dirname(__FILE__))
|
19
|
+
FileUtils.rm_f(@helper.path)
|
20
|
+
|
21
|
+
@helper.write
|
22
|
+
end
|
23
|
+
|
24
|
+
teardown do
|
25
|
+
FileUtils.rm_f(@helper.path)
|
26
|
+
end
|
27
|
+
|
28
|
+
should "create gemspec file" do
|
29
|
+
assert File.exists?(@helper.path)
|
30
|
+
end
|
31
|
+
|
32
|
+
should "make valid spec" do
|
33
|
+
assert @helper.valid?
|
34
|
+
end
|
35
|
+
|
36
|
+
should "parse" do
|
37
|
+
@helper.parse
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,166 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class TestGenerator < Test::Unit::TestCase
|
4
|
+
def build_generator(testing_framework = nil, options = {})
|
5
|
+
stub(Git).global_config() do
|
6
|
+
{'user.name' => 'John Doe', 'user.email' => 'john@example.com', 'github.user' => 'johndoe', 'github.token' => 'yyz'}
|
7
|
+
end
|
8
|
+
|
9
|
+
options[:testing_framework] = testing_framework
|
10
|
+
Jeweler::Generator.new('the-perfect-gem', options)
|
11
|
+
end
|
12
|
+
|
13
|
+
context "initialize" do
|
14
|
+
should "raise error if nil repo name given" do
|
15
|
+
assert_raise Jeweler::NoGitHubRepoNameGiven do
|
16
|
+
Jeweler::Generator.new(nil)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
should "raise error if blank repo name given" do
|
21
|
+
assert_raise Jeweler::NoGitHubRepoNameGiven do
|
22
|
+
Jeweler::Generator.new("")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
should "have shoulda as default framework" do
|
27
|
+
assert_equal :shoulda, build_generator.testing_framework
|
28
|
+
end
|
29
|
+
|
30
|
+
should "have repository name as default target dir" do
|
31
|
+
assert_equal 'the-perfect-gem', build_generator.target_dir
|
32
|
+
end
|
33
|
+
|
34
|
+
should "have default summary" do
|
35
|
+
assert_equal "TODO: one-line summary of your gem", build_generator.summary
|
36
|
+
end
|
37
|
+
|
38
|
+
should "have default description" do
|
39
|
+
assert_equal "TODO: longer description of your gem", build_generator.description
|
40
|
+
end
|
41
|
+
|
42
|
+
should "not create repo by default" do
|
43
|
+
assert ! build_generator.should_create_repo
|
44
|
+
end
|
45
|
+
|
46
|
+
should "not use cucumber by default" do
|
47
|
+
assert ! build_generator.should_use_cucumber
|
48
|
+
end
|
49
|
+
|
50
|
+
should "not use reek by default" do
|
51
|
+
assert ! build_generator.should_use_reek
|
52
|
+
end
|
53
|
+
|
54
|
+
should "not use roodi by default" do
|
55
|
+
assert ! build_generator.should_use_roodi
|
56
|
+
end
|
57
|
+
|
58
|
+
should "raise error for invalid testing frameworks" do
|
59
|
+
assert_raise ArgumentError do
|
60
|
+
build_generator(:zomg_invalid)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
should "have the correct git remote" do
|
66
|
+
assert_equal 'git@github.com:johndoe/the-perfect-gem.git', build_generator.git_remote
|
67
|
+
end
|
68
|
+
|
69
|
+
should "have the correct project homepage" do
|
70
|
+
assert_equal 'http://github.com/johndoe/the-perfect-gem', build_generator.project_homepage
|
71
|
+
end
|
72
|
+
|
73
|
+
should "have the correct constant name" do
|
74
|
+
assert_equal "ThePerfectGem", build_generator.constant_name
|
75
|
+
end
|
76
|
+
|
77
|
+
should "have the correct file name prefix" do
|
78
|
+
assert_equal "the_perfect_gem", build_generator.file_name_prefix
|
79
|
+
end
|
80
|
+
|
81
|
+
should "have the correct require name" do
|
82
|
+
assert_equal "the-perfect-gem", build_generator.require_name
|
83
|
+
end
|
84
|
+
|
85
|
+
should "have the correct lib file name" do
|
86
|
+
assert_equal "the-perfect-gem.rb", build_generator.lib_filename
|
87
|
+
end
|
88
|
+
|
89
|
+
def self.should_have_generator_attribute(attribute, value)
|
90
|
+
should "have #{value} for #{attribute}" do
|
91
|
+
assert_equal value, build_generator(@framework).send(attribute)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
context "shoulda" do
|
96
|
+
setup { @framework = :shoulda }
|
97
|
+
should_have_generator_attribute :test_task, 'test'
|
98
|
+
should_have_generator_attribute :test_dir, 'test'
|
99
|
+
should_have_generator_attribute :default_task, 'test'
|
100
|
+
should_have_generator_attribute :feature_support_require, 'test/unit/assertions'
|
101
|
+
should_have_generator_attribute :feature_support_extend, 'Test::Unit::Assertions'
|
102
|
+
should_have_generator_attribute :test_pattern, 'test/**/*_test.rb'
|
103
|
+
should_have_generator_attribute :test_filename, 'the-perfect-gem_test.rb'
|
104
|
+
should_have_generator_attribute :test_helper_filename, 'test_helper.rb'
|
105
|
+
end
|
106
|
+
|
107
|
+
context "testunit" do
|
108
|
+
setup { @framework = :testunit }
|
109
|
+
should_have_generator_attribute :test_task, 'test'
|
110
|
+
should_have_generator_attribute :test_dir, 'test'
|
111
|
+
should_have_generator_attribute :default_task, 'test'
|
112
|
+
should_have_generator_attribute :feature_support_require, 'test/unit/assertions'
|
113
|
+
should_have_generator_attribute :feature_support_extend, 'Test::Unit::Assertions'
|
114
|
+
should_have_generator_attribute :test_pattern, 'test/**/*_test.rb'
|
115
|
+
should_have_generator_attribute :test_filename, 'the-perfect-gem_test.rb'
|
116
|
+
should_have_generator_attribute :test_helper_filename, 'test_helper.rb'
|
117
|
+
end
|
118
|
+
|
119
|
+
context "minitest" do
|
120
|
+
setup { @framework = :minitest }
|
121
|
+
should_have_generator_attribute :test_task, 'test'
|
122
|
+
should_have_generator_attribute :test_dir, 'test'
|
123
|
+
should_have_generator_attribute :default_task, 'test'
|
124
|
+
should_have_generator_attribute :feature_support_require, 'mini/test'
|
125
|
+
should_have_generator_attribute :feature_support_extend, 'Mini::Test::Assertions'
|
126
|
+
should_have_generator_attribute :test_pattern, 'test/**/*_test.rb'
|
127
|
+
should_have_generator_attribute :test_filename, 'the-perfect-gem_test.rb'
|
128
|
+
should_have_generator_attribute :test_helper_filename, 'test_helper.rb'
|
129
|
+
end
|
130
|
+
|
131
|
+
context "bacon" do
|
132
|
+
setup { @framework = :bacon }
|
133
|
+
should_have_generator_attribute :test_task, 'spec'
|
134
|
+
should_have_generator_attribute :test_dir, 'spec'
|
135
|
+
should_have_generator_attribute :default_task, 'spec'
|
136
|
+
should_have_generator_attribute :feature_support_require, 'test/unit/assertions'
|
137
|
+
should_have_generator_attribute :feature_support_extend, 'Test::Unit::Assertions'
|
138
|
+
should_have_generator_attribute :test_pattern, 'spec/**/*_spec.rb'
|
139
|
+
should_have_generator_attribute :test_filename, 'the-perfect-gem_spec.rb'
|
140
|
+
should_have_generator_attribute :test_helper_filename, 'spec_helper.rb'
|
141
|
+
end
|
142
|
+
|
143
|
+
context "rspec" do
|
144
|
+
setup { @framework = :rspec }
|
145
|
+
should_have_generator_attribute :test_task, 'spec'
|
146
|
+
should_have_generator_attribute :test_dir, 'spec'
|
147
|
+
should_have_generator_attribute :default_task, 'spec'
|
148
|
+
should_have_generator_attribute :feature_support_require, 'spec/expectations'
|
149
|
+
should_have_generator_attribute :feature_support_extend, nil
|
150
|
+
should_have_generator_attribute :test_pattern, 'spec/**/*_spec.rb'
|
151
|
+
should_have_generator_attribute :test_filename, 'the-perfect-gem_spec.rb'
|
152
|
+
should_have_generator_attribute :test_helper_filename, 'spec_helper.rb'
|
153
|
+
end
|
154
|
+
|
155
|
+
context "micronaut" do
|
156
|
+
setup { @framework = :micronaut }
|
157
|
+
should_have_generator_attribute :test_task, 'examples'
|
158
|
+
should_have_generator_attribute :test_dir, 'examples'
|
159
|
+
should_have_generator_attribute :default_task, 'examples'
|
160
|
+
should_have_generator_attribute :feature_support_require, 'micronaut/expectations'
|
161
|
+
should_have_generator_attribute :feature_support_extend, 'Micronaut::Matchers'
|
162
|
+
should_have_generator_attribute :test_pattern, 'examples/**/*_example.rb'
|
163
|
+
should_have_generator_attribute :test_filename, 'the-perfect-gem_example.rb'
|
164
|
+
should_have_generator_attribute :test_helper_filename, 'example_helper.rb'
|
165
|
+
end
|
166
|
+
end
|