Class: JavaTestingGuff::EasyMockGuffGenerator
Instance Method Summary
collapse
#add_specific_selector_stuff, #constructor_arguments_for_builder, #generate_guff_foreach, #generate_selector_foreach, #initialize, #save_in, #use_package
Instance Method Details
#builder_name(currentClass) ⇒ Object
54
55
56
|
# File 'lib/java_testing_guff.rb', line 54
def builder_name(currentClass)
"Generated#{currentClass.name}MockBuilder"
end
|
#builder_selector_name ⇒ Object
58
59
60
|
# File 'lib/java_testing_guff.rb', line 58
def builder_selector_name
"GeneratedMockBuilderSelector"
end
|
#generate_specific_guff(source, currentClass) ⇒ Object
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/java_testing_guff.rb', line 62
def generate_specific_guff(source, currentClass)
generated_name = builder_name(currentClass)
source.import('org.easymock.EasyMock')
source.begin_class(generated_name) {|generated_class|
generated_class.genericized_using("<T extends #{generated_name}>")
generated_class.add_field('mock', currentClass.fullyQualifiedName).final.protected
generated_class.add_constructor.takes("creator", "org.rubyforge.javatestingguff.MockCreator").body {|body|
body.line("mock = creator.create(#{currentClass.fully_qualified_name}.class);")
}
generated_class.add_method("build").returns(currentClass.fully_qualified_name).body {|body|
body.line('return mock;')
}
generated_class.add_method("apply").returns('T').takes("stuff", "org.rubyforge.javatestingguff.Command").body {|body|
body.line("stuff.execute(this);")
body.line("return (T) this;")
}
currentClass.with_self_and_supers {|clzz|
clzz.add_easy_mock_methods_to(generated_class)
}
}
end
|