require 'test/unit' require File.dirname(__FILE__) + '/test_helper' require 'test/test/fixtures/author' require 'test/test/fixtures/work' require 'test/test/fixtures/influence' class FoxifyFixturesTest < Test::Unit::TestCase def setup FoxifyFixtures.foxify end def test_should_back_up_existing_fixtures ["authors","influences","works"].each do |fixture| assert File.exists?("#{RAILS_ROOT}/test/fixtures/backup/#{fixture}.yml") end end def test_should_have_updated_fixtures # authors authors = YAML::load_file("#{RAILS_ROOT}/test/fixtures/authors.yml") expected_authors = { "shakespeare"=>{"name"=>"William Shakespeare"}, "faulkner"=>{"name"=>"William Faulkner"}, "tennyson"=>{"name"=>"Alfred Tennyson"} } assert_equal expected_authors, authors # works works = YAML::load_file("#{RAILS_ROOT}/test/fixtures/works.yml") expected_works = { "ulysses"=>{"name"=>"Ulysses", "author"=>'tennyson'}, "a_midsummer_nights_dream"=>{"name"=>"A Midsummer Night's Dream", "author"=>'shakespeare'}, "the_sound_and_the_fury"=>{"name"=>"The Sound and the Fury", "author"=>'faulkner'}, "macbeth"=>{"name"=>"Macbeth", "author"=>'shakespeare'}} assert_equal expected_works, works # influences influences = YAML::load_file("#{RAILS_ROOT}/test/fixtures/influences.yml") expected_influences = { "tennyson_shakespeare"=>{"influenced_by_author"=>'shakespeare', "author"=>'tennyson'}, "faulkner_shakespeare"=>{"influenced_by_author"=>'shakespeare', "author"=>'faulkner'}} assert_equal expected_influences, influences end def teardown # make sure backups were made, then get rid of updated fixtures # and replace with originals if( File.exists?("#{RAILS_ROOT}/test/fixtures/backup") ) FileUtils.rm( Dir.glob("#{RAILS_ROOT}/test/fixtures/*.yml") ) FileUtils.mv( Dir.glob("#{RAILS_ROOT}/test/fixtures/backup/*.yml"), "#{RAILS_ROOT}/test/fixtures/") FileUtils.rm_rf("#{RAILS_ROOT}/test/fixtures/backup") end end end