test/generators/test_generator.rb in reality-generators-1.10.0 vs test/generators/test_generator.rb in reality-generators-1.11.0

- old
+ new

@@ -237,10 +237,49 @@ # The filters says no assert_equal false, File.exist?("#{target_directory}/main/java/MyRepo/MyEntityB/MyAttr3.java") assert_equal false, File.exist?("#{target_directory}/main/java/MyRepo/MyEntityB/MyAttr4.java") end + class Repository2 < Reality.base_element(:name => true) + def pre_generate + @pre_generate_called = true + end + + def pre_generate_called? + @pre_generate_called ||= false + end + end + + class Repository2Template < Reality::Generators::SingleFileOutputTemplate + def render_to_string(context_binding) + eval('"Repository: #{repository2.name}"', context_binding) + end + end + + def test_generate_with_pre_generate_hook + repository = Repository2.new(:MyRepo) + + TestTemplateSetContainer.target_manager.target(:repository2) + + template_set = TestTemplateSetContainer.template_set(:test) do |t| + Repository2Template.new(t, [], :repository2, 'repository.java', 'main/java/#{repository2.name}.java') + end + + target_directory = "#{temp_dir}/generated/erb_template" + + # Call toString on template name to ensure it is possible to pass string in + TestTemplateSetContainer.generator. + generate(:repository2, repository, target_directory, [template_set.name.to_s], nil) + + repo_file = "#{target_directory}/main/java/MyRepo.java" + + assert_equal true, repository.pre_generate_called? + assert_equal true, File.directory?("#{target_directory}/main/java") + assert_equal true, File.exist?(repo_file) + assert_equal 'Repository: MyRepo', IO.read(repo_file) + end + def test_load_templates_from_template_sets TestTemplateSetContainer.target_manager.target(:repository) TestTemplateSetContainer.target_manager.target(:entity, :repository) TestTemplateSetContainer.target_manager.target(:attribute, :entity) @@ -266,10 +305,10 @@ RepositoryTemplate.new(template_set, [], :repository, 'repository4.java', 'main/java/#{repository.name}3.java') AttributeTemplate.new(template_set, [], :attribute, 'attribute4.java', 'main/java/#{attribute.qualified_name.gsub(".","/")}4.java') end - template_set_keys = [:template_set_1, :template_set_4] + template_set_keys = [:template_set_1, 'template_set_4'] templates = TestTemplateSetContainer.generator.load_templates_from_template_sets(template_set_keys) assert_equal 6, templates.size assert_equal %w(template_set_1:attribute.java template_set_1:entity.java template_set_1:repository1.java template_set_1:unit.java template_set_4:attribute4.java template_set_4:repository4.java), templates.collect{|t| t.name}.sort