-
Notifications
You must be signed in to change notification settings - Fork 92
/
test_hobofield_model_generator.rb
65 lines (54 loc) · 2.08 KB
/
test_hobofield_model_generator.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
require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
require 'rails_generator'
class TestHobofieldModelGenerator < Test::Unit::TestCase
include RubiGen::GeneratorTestHelper
def setup
bare_setup
end
def teardown
bare_teardown
end
# Some generator-related assertions:
# assert_generated_file(name, &block) # block passed the file contents
# assert_directory_exists(name)
# assert_generated_class(name, &block)
# assert_generated_module(name, &block)
# assert_generated_test_for(name, &block)
# The assert_generated_(class|module|test_for) &block is passed the body of the class/module within the file
# assert_has_method(body, *methods) # check that the body has a list of methods (methods with parentheses not supported yet)
#
# Other helper methods are:
# app_root_files - put this in teardown to show files generated by the test method (e.g. p app_root_files)
# bare_setup - place this in setup method to create the APP_ROOT folder for each test
# bare_teardown - place this in teardown method to destroy the TMP_ROOT or APP_ROOT folder after each test
def test_generator_underscore_name
name = "my_model"
run_generator('hobofield_model', [name], sources)
assert_generated_file("app/models/my_model.rb")
assert_generated_class("app/models/my_model") do |body|
end
assert_generated_file("test/unit/my_model_test.rb")
assert_generated_class("test/unit/my_model_test") do |body|
assert_has_method "test_truth"
end
end
def test_generator_camelcase
name = "MyModel"
run_generator('hobofield_model', [name], sources)
assert_generated_file("app/models/my_model.rb")
assert_generated_class("app/models/my_model") do |body|
end
assert_generated_file("test/unit/my_model_test.rb")
assert_generated_class("test/unit/my_model_test") do |body|
assert_has_method "test_truth"
end
end
private
def sources
[RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path))
]
end
def generator_path
"rails_generators"
end
end