test/test_gigantron_generator.rb in gigantron-0.1.1 vs test/test_gigantron_generator.rb in gigantron-0.1.2
- old
+ new
@@ -1,114 +1,118 @@
-require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
-
-class TestGigantronGenerator < Test::Unit::TestCase
- include RubiGen::GeneratorTestHelper
-
- def setup
- bare_setup
- end
-
- def teardown
- bare_teardown
- end
-
- should "generate correct directory and file structure" do
- run_generator('gigantron', [APP_ROOT], sources)
- assert_directory_exists "tasks/"
- assert_generated_file "tasks/import.rake"
- assert_directory_exists "test/"
- assert_generated_file "test/test_helper.rb"
- assert_directory_exists "test/tasks/"
- assert_generated_file "test/tasks/test_import.rb"
- assert_directory_exists "test/models/"
- assert_directory_exists "lib/"
- assert_directory_exists "models/"
- assert_directory_exists "db/"
- assert_directory_exists "script/"
- assert_generated_file "script/generate"
- assert_generated_file "database.yml"
- assert_generated_file "Rakefile"
- assert_generated_file "initialize.rb"
- end
-
- context "Generated project" do
- setup do
- run_generator('gigantron', [APP_ROOT], sources)
-
- silence_warnings { GTRON_ENV = :test }
- ENV["GTRON_ENV"] = "test"
-
- initialize_gigantron
- configure_gigantron_db
- get_db_conn(GTRON_ENV)
- end
-
- context "with migration and model" do
- setup do
- run_generator('model', ['Foo'], sources)
-
- create_test_migration
- get_db_conn(GTRON_ENV)
-
- ENV["VERBOSE"] = "false"
- Gigantron.migrate_dbs
- end
-
- should "create test db" do
- assert File.exists?("#{APP_ROOT}/db/test.sqlite3")
- end
-
- should "create table foos and populate" do
- assert_equal Foo.find(:all).size, 2
- end
- end
-
- context "with Rake tasks" do
- setup do
- @rake = Rake::Application.new
- Rake.application = @rake
- load "#{APP_ROOT}/tasks/import.rake"
- end
-
- teardown { Rake.application = nil }
-
- should "run empty import task" do
- assert @rake['import'].invoke
- end
- end
- end
-
- private
- def sources
- [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path)),
- RubiGen::PathSource.new(:test_components, File.join(File.dirname(__FILE__),"..", "gigantron_generators"))]
- end
-
- def generator_path
- "app_generators"
- end
-
- def initialize_gigantron
- require File.join(APP_ROOT, "initialize.rb")
- require 'gigantron/migrator'
- end
-
- def configure_gigantron_db
- if !File.exists? "test/template_database.yml"
- flunk "No Database Configuration. Configure test DB in 'test/template_database.yml'!"
- end
- File.open("#{APP_ROOT}/database.yml", "w") do |f|
- f.write ERB.new(
- File.read("test/template_database.yml")).result(binding)
- end
- end
-
- def create_test_migration
- if !File.exists? "#{APP_ROOT}/db/migrate/001_create_foos.rb"
- run_generator('migration', ['CreateFoos'], sources)
- end
-
- assert File.exists?("#{APP_ROOT}/db/migrate/001_create_foos.rb")
- FileUtils.cp("test/template_migration.rb",
- "#{APP_ROOT}/db/migrate/001_create_foos.rb")
- end
-end
+require File.join(File.dirname(__FILE__), "test_generator_helper.rb")
+
+class TestGigantronGenerator < Test::Unit::TestCase
+ include RubiGen::GeneratorTestHelper
+
+ def setup
+ bare_setup
+ end
+
+ def teardown
+ bare_teardown
+ end
+
+ should "generate correct directory and file structure" do
+ run_generator('gigantron', [APP_ROOT], sources)
+ assert_directory_exists "tasks/"
+ assert_generated_file "tasks/import.rake"
+ assert_directory_exists "test/"
+ assert_generated_file "test/test_helper.rb"
+ assert_directory_exists "test/tasks/"
+ assert_generated_file "test/tasks/test_import.rb"
+ assert_directory_exists "test/models/"
+ assert_directory_exists "lib/"
+ assert_directory_exists "lib/shoulda/"
+ assert_generated_file "lib/shoulda/general.rb"
+ assert_generated_file "lib/shoulda/private_helpers.rb"
+ assert_generated_file "lib/shoulda/active_record_helpers.rb"
+ assert_directory_exists "models/"
+ assert_directory_exists "db/"
+ assert_directory_exists "script/"
+ assert_generated_file "script/generate"
+ assert_generated_file "database.yml.example"
+ assert_generated_file "Rakefile"
+ assert_generated_file "initialize.rb"
+ end
+
+ context "Generated project" do
+ setup do
+ run_generator('gigantron', [APP_ROOT], sources)
+
+ silence_warnings { GTRON_ENV = :test }
+ ENV["GTRON_ENV"] = "test"
+
+ initialize_gigantron
+ configure_gigantron_db
+ get_db_conn(GTRON_ENV)
+ end
+
+ context "with migration and model" do
+ setup do
+ run_generator('model', ['Foo'], sources)
+
+ create_test_migration
+ get_db_conn(GTRON_ENV)
+
+ ENV["VERBOSE"] = "false"
+ Gigantron.migrate_dbs
+ end
+
+ should "create test db" do
+ assert File.exists?("#{APP_ROOT}/db/test.sqlite3")
+ end
+
+ should "create table foos and populate" do
+ assert_equal Foo.find(:all).size, 2
+ end
+ end
+
+ context "with Rake tasks" do
+ setup do
+ @rake = Rake::Application.new
+ Rake.application = @rake
+ load "#{APP_ROOT}/tasks/import.rake"
+ end
+
+ teardown { Rake.application = nil }
+
+ should "run empty import task" do
+ assert @rake['import'].invoke
+ end
+ end
+ end
+
+ private
+ def sources
+ [RubiGen::PathSource.new(:test, File.join(File.dirname(__FILE__),"..", generator_path)),
+ RubiGen::PathSource.new(:test_components, File.join(File.dirname(__FILE__),"..", "gigantron_generators"))]
+ end
+
+ def generator_path
+ "app_generators"
+ end
+
+ def initialize_gigantron
+ require File.join(APP_ROOT, "initialize.rb")
+ require 'gigantron/migrator'
+ end
+
+ def configure_gigantron_db
+ if !File.exists? "test/template_database.yml"
+ flunk "No Database Configuration. Configure test DB in 'test/template_database.yml'!"
+ end
+ File.open("#{APP_ROOT}/database.yml", "w") do |f|
+ f.write ERB.new(
+ File.read("test/template_database.yml")).result(binding)
+ end
+ end
+
+ def create_test_migration
+ if !File.exists? "#{APP_ROOT}/db/migrate/001_create_foos.rb"
+ run_generator('migration', ['CreateFoos'], sources)
+ end
+
+ assert File.exists?("#{APP_ROOT}/db/migrate/001_create_foos.rb")
+ FileUtils.cp("test/template_migration.rb",
+ "#{APP_ROOT}/db/migrate/001_create_foos.rb")
+ end
+end