1 require File.dirname(__FILE__) + '/../test_helper'
4 class CommentingGeneratorTest < Test::Unit::TestCase
6 def test_ensure_comments_dont_exist
7 # make sure the comments are already defined
8 assert_equal false, Object.send(:const_defined?, :Comment)
9 assert_equal false, Object.send(:const_defined?, :Commenting)
12 def test_ensure_files_exist_after_generator_runs
15 # make sure the files are there
16 for generated_file in generated_files do
17 assert File.exists?(File.expand_path(generated_file))
21 def test_classes_exist_with_associations
23 assert_nothing_raised { Commenting }
24 assert_nothing_raised { Comment }
25 citation = Citation.find(:first)
27 assert citation.respond_to?(:comments)
28 user = User.find(:first)
30 assert user.respond_to?(:comments)
34 Object.send(:remove_const, :Comment) if Object.send(:const_defined?, :Comment)
35 Object.send(:remove_const, :Commenting) if Object.send(:const_defined?, :Commenting)
36 remove_all_generated_files
37 remove_require_for_commenting_extensions
41 generated_files = [File.join(File.dirname(__FILE__), '..', '..', 'app', 'models', 'comment.rb')]
42 generated_files << File.join(File.dirname(__FILE__), '..', '..', 'app', 'models', 'commenting.rb')
43 generated_files << File.join(File.dirname(__FILE__), '..', '..', 'test', 'unit', 'commenting_test.rb')
44 generated_files << File.join(File.dirname(__FILE__), '..', '..', 'test', 'unit', 'comment_test.rb')
45 generated_files << File.join(File.dirname(__FILE__), '..', '..', 'lib', 'commenting_extensions.rb')
46 generated_files << File.join(File.dirname(__FILE__), '..', '..', 'test', 'fixtures', 'comments.yml')
47 generated_files << File.join(File.dirname(__FILE__), '..', '..', 'test', 'fixtures', 'commentings.yml')
50 def remove_all_generated_files
51 for generated_file in generated_files do
52 if File.exists?(generated_file)
53 assert FileUtils.rm(generated_file)
59 `rake db:migrate RAILS_ENV=test`
63 command = File.join(File.dirname(__FILE__), '..', '..', 'script', 'generate')
64 `#{command} commenting Citation User`
68 def remove_require_for_commenting_extensions
69 environment = File.join(File.dirname(__FILE__), '..', '..', 'config', 'environment.rb')
71 if File.exists?(environment)
72 if (open(environment) { |file| file.grep(/Rails/).any? })
73 IO.readlines(environment).each do |line|
74 new_environment += line unless line.match(/commenting_extensions/i)
76 File.open(environment, "w+") do |f|
78 f.print new_environment