Test data befitting of the crazy AssociationsTest
This commit is contained in:
parent
1c4d1dc807
commit
d312d1f272
|
@ -2,6 +2,21 @@ require 'test_helper'
|
||||||
require 'time_travel_helper'
|
require 'time_travel_helper'
|
||||||
|
|
||||||
class AssociationsTest < ActiveSupport::TestCase
|
class AssociationsTest < ActiveSupport::TestCase
|
||||||
|
CHAPTER_NAMES = [
|
||||||
|
"Down the Rabbit-Hole",
|
||||||
|
"The Pool of Tears",
|
||||||
|
"A Caucus-Race and a Long Tale",
|
||||||
|
"The Rabbit Sends in a Little Bill",
|
||||||
|
"Advice from a Caterpillar",
|
||||||
|
"Pig and Pepper",
|
||||||
|
"A Mad Tea-Party",
|
||||||
|
"The Queen's Croquet-Ground",
|
||||||
|
"The Mock Turtle's Story",
|
||||||
|
"The Lobster Quadrille",
|
||||||
|
"Who Stole the Tarts?",
|
||||||
|
"Alice's Evidence"
|
||||||
|
]
|
||||||
|
|
||||||
# These would have been done in test_helper.rb if using_mysql? is true
|
# These would have been done in test_helper.rb if using_mysql? is true
|
||||||
unless using_mysql?
|
unless using_mysql?
|
||||||
self.use_transactional_fixtures = false
|
self.use_transactional_fixtures = false
|
||||||
|
@ -527,16 +542,16 @@ class AssociationsTest < ActiveSupport::TestCase
|
||||||
end
|
end
|
||||||
|
|
||||||
context "Chapters, Sections, Paragraphs, Quotations, and Citations" do
|
context "Chapters, Sections, Paragraphs, Quotations, and Citations" do
|
||||||
setup { @chapter = Chapter.create(:name => 'ch_1') }
|
setup { @chapter = Chapter.create(:name => CHAPTER_NAMES[0]) }
|
||||||
|
|
||||||
context "before any associations are created" do
|
context "before any associations are created" do
|
||||||
setup do
|
setup do
|
||||||
@chapter.update_attributes(:name => "ch_2")
|
@chapter.update_attributes(:name => CHAPTER_NAMES[1])
|
||||||
end
|
end
|
||||||
|
|
||||||
should "not reify any associations" do
|
should "not reify any associations" do
|
||||||
chapter_v1 = @chapter.versions[1].reify(:has_many => true)
|
chapter_v1 = @chapter.versions[1].reify(:has_many => true)
|
||||||
assert_equal "ch_1", chapter_v1.name
|
assert_equal CHAPTER_NAMES[0], chapter_v1.name
|
||||||
assert_equal [], chapter_v1.sections
|
assert_equal [], chapter_v1.sections
|
||||||
assert_equal [], chapter_v1.paragraphs
|
assert_equal [], chapter_v1.paragraphs
|
||||||
end
|
end
|
||||||
|
@ -545,7 +560,7 @@ class AssociationsTest < ActiveSupport::TestCase
|
||||||
context "after the first has_many through relationship is created" do
|
context "after the first has_many through relationship is created" do
|
||||||
setup do
|
setup do
|
||||||
assert_equal 1, @chapter.versions.size
|
assert_equal 1, @chapter.versions.size
|
||||||
@chapter.update_attributes :name => "ch_2"
|
@chapter.update_attributes :name => CHAPTER_NAMES[1]
|
||||||
assert_equal 2, @chapter.versions.size
|
assert_equal 2, @chapter.versions.size
|
||||||
|
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
|
@ -553,7 +568,7 @@ class AssociationsTest < ActiveSupport::TestCase
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
@chapter.sections.first.update_attributes :name => "section 2"
|
@chapter.sections.first.update_attributes :name => "section 2"
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
@chapter.update_attributes :name => "ch_3"
|
@chapter.update_attributes :name => CHAPTER_NAMES[2]
|
||||||
assert_equal 3, @chapter.versions.size
|
assert_equal 3, @chapter.versions.size
|
||||||
|
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
|
@ -577,13 +592,13 @@ class AssociationsTest < ActiveSupport::TestCase
|
||||||
assert_equal ['section 2'], chapter_v2.sections.map(&:name)
|
assert_equal ['section 2'], chapter_v2.sections.map(&:name)
|
||||||
|
|
||||||
# Shows the value of the chapter as it was before
|
# Shows the value of the chapter as it was before
|
||||||
assert_equal "ch_2", chapter_v2.name
|
assert_equal CHAPTER_NAMES[1], chapter_v2.name
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context "version 2, before the section was destroyed" do
|
context "version 2, before the section was destroyed" do
|
||||||
setup do
|
setup do
|
||||||
@chapter.update_attributes :name => 'ch_3'
|
@chapter.update_attributes :name => CHAPTER_NAMES[2]
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
@chapter.sections.destroy_all
|
@chapter.sections.destroy_all
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
|
@ -599,7 +614,7 @@ class AssociationsTest < ActiveSupport::TestCase
|
||||||
setup do
|
setup do
|
||||||
@chapter.sections.destroy_all
|
@chapter.sections.destroy_all
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
@chapter.update_attributes :name => 'ch_4'
|
@chapter.update_attributes :name => CHAPTER_NAMES[3]
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -621,7 +636,7 @@ class AssociationsTest < ActiveSupport::TestCase
|
||||||
initial_section_name = @section.name
|
initial_section_name = @section.name
|
||||||
initial_paragraph_name = @paragraph.name
|
initial_paragraph_name = @paragraph.name
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
@chapter.update_attributes :name => 'ch_5'
|
@chapter.update_attributes :name => CHAPTER_NAMES[4]
|
||||||
assert_equal 4, @chapter.versions.size
|
assert_equal 4, @chapter.versions.size
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
@paragraph.update_attributes :name => 'para3'
|
@paragraph.update_attributes :name => 'para3'
|
||||||
|
@ -637,7 +652,7 @@ class AssociationsTest < ActiveSupport::TestCase
|
||||||
should "not have any sections or paragraphs" do
|
should "not have any sections or paragraphs" do
|
||||||
@section.destroy
|
@section.destroy
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
@chapter.update_attributes(:name => 'chapter 6')
|
@chapter.update_attributes(:name => CHAPTER_NAMES[5])
|
||||||
assert_equal 4, @chapter.versions.size
|
assert_equal 4, @chapter.versions.size
|
||||||
chapter_v3 = @chapter.versions[3].reify(:has_many => true)
|
chapter_v3 = @chapter.versions[3].reify(:has_many => true)
|
||||||
assert_equal 0, chapter_v3.sections.size
|
assert_equal 0, chapter_v3.sections.size
|
||||||
|
@ -649,7 +664,7 @@ class AssociationsTest < ActiveSupport::TestCase
|
||||||
should "have the one paragraph" do
|
should "have the one paragraph" do
|
||||||
initial_paragraph_name = @section.paragraphs.first.name
|
initial_paragraph_name = @section.paragraphs.first.name
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
@chapter.update_attributes(:name => 'chapter 6')
|
@chapter.update_attributes(:name => CHAPTER_NAMES[5])
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
@paragraph.destroy
|
@paragraph.destroy
|
||||||
chapter_v3 = @chapter.versions[3].reify(:has_many => true)
|
chapter_v3 = @chapter.versions[3].reify(:has_many => true)
|
||||||
|
@ -663,7 +678,7 @@ class AssociationsTest < ActiveSupport::TestCase
|
||||||
should "have no paragraphs" do
|
should "have no paragraphs" do
|
||||||
@paragraph.destroy
|
@paragraph.destroy
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
@chapter.update_attributes(:name => 'chapter 6')
|
@chapter.update_attributes(:name => CHAPTER_NAMES[5])
|
||||||
chapter_v3 = @chapter.versions[3].reify(:has_many => true)
|
chapter_v3 = @chapter.versions[3].reify(:has_many => true)
|
||||||
assert_equal 0, chapter_v3.paragraphs.size
|
assert_equal 0, chapter_v3.paragraphs.size
|
||||||
assert_equal [], chapter_v3.sections.first.paragraphs
|
assert_equal [], chapter_v3.sections.first.paragraphs
|
||||||
|
@ -674,13 +689,13 @@ class AssociationsTest < ActiveSupport::TestCase
|
||||||
|
|
||||||
context "a chapter with one paragraph and one citation" do
|
context "a chapter with one paragraph and one citation" do
|
||||||
should "reify paragraphs and citations" do
|
should "reify paragraphs and citations" do
|
||||||
chapter = Chapter.create(:name => 'Chapter One')
|
chapter = Chapter.create(:name => CHAPTER_NAMES[0])
|
||||||
section = Section.create(:name => 'Section One', :chapter => chapter)
|
section = Section.create(:name => 'Section One', :chapter => chapter)
|
||||||
paragraph = Paragraph.create(:name => 'Paragraph One', :section => section)
|
paragraph = Paragraph.create(:name => 'Paragraph One', :section => section)
|
||||||
quotation = Quotation.create(:chapter => chapter)
|
quotation = Quotation.create(:chapter => chapter)
|
||||||
citation = Citation.create(:quotation => quotation)
|
citation = Citation.create(:quotation => quotation)
|
||||||
Timecop.travel 1.second.since
|
Timecop.travel 1.second.since
|
||||||
chapter.update_attributes(:name => 'Chapter One, Vers. Two')
|
chapter.update_attributes(:name => CHAPTER_NAMES[1])
|
||||||
assert_equal 2, chapter.versions.count
|
assert_equal 2, chapter.versions.count
|
||||||
paragraph.destroy
|
paragraph.destroy
|
||||||
citation.destroy
|
citation.destroy
|
||||||
|
|
Loading…
Reference in New Issue