diff options
author | Go MAEDA <maeda@farend.jp> | 2025-07-31 11:49:13 +0000 |
---|---|---|
committer | Go MAEDA <maeda@farend.jp> | 2025-07-31 11:49:13 +0000 |
commit | 9605bb4b3b5174cb40e15a850c8600e057a0d23c (patch) | |
tree | fa499b695ba60ec5b9ce4180041c9420a8d11978 /test/generators/model_generator_test.rb | |
parent | d6d15737f196e52457af00cc66995bd6fe44b2a2 (diff) | |
download | redmine-master.tar.gz redmine-master.zip |
Patch by Haruka Asakura (Agileware) (user:asakura-agileware).
git-svn-id: https://svn.redmine.org/redmine/trunk@23901 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/generators/model_generator_test.rb')
-rw-r--r-- | test/generators/model_generator_test.rb | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/test/generators/model_generator_test.rb b/test/generators/model_generator_test.rb new file mode 100644 index 000000000..f030de6f7 --- /dev/null +++ b/test/generators/model_generator_test.rb @@ -0,0 +1,69 @@ +# frozen_string_literal: true + +# Redmine - project management software +# Copyright (C) 2006- Jean-Philippe Lang +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +require_relative '../test_helper' +require_relative '../../lib/generators/redmine_plugin_model/redmine_plugin_model_generator' + +class ModelGeneratorTest < Rails::Generators::TestCase + TMP_DIR = Rails.root / 'tmp/test/generators' + + tests RedminePluginModelGenerator + destination TMP_DIR + setup :prepare_destination + + setup do + @plugin_directory = Redmine::Plugin.directory + Redmine::Plugin.directory = TMP_DIR + end + + teardown do + Redmine::Plugin.directory = @plugin_directory + end + + def test_generates_files_from_templates + g = generator ['ModelDemo', 'TodoModel'] + + assert_name g, 'TodoModel', :model + + capture(:stdout) do + g.copy_templates + end + + model_path_names = (Redmine::Plugin.directory / 'model_demo/app/models') + .glob('*.rb') + assert_equal 1, model_path_names.count + assert_equal 'todo_model.rb', model_path_names.first.basename.to_s + + test_path_names = (Redmine::Plugin.directory / 'model_demo/test/unit') + .glob('*.rb') + assert_equal 1, test_path_names.count + assert_equal 'todo_model_test.rb', test_path_names.first.basename.to_s + + migration_path_names = (Redmine::Plugin.directory / 'model_demo/db/migrate') + .glob('*.rb') + assert_equal 1, migration_path_names.count + assert_match(/\d+_create_todo_models\.rb/, migration_path_names.first.basename.to_s) + end + + private + + def assert_name(generator, value, method) + assert_equal value, generator.send(method) + end +end |