test/mongoid_test.rb in reform-2.0.3 vs test/mongoid_test.rb in reform-2.0.4
- old
+ new
@@ -1,313 +1,313 @@
-require 'test_helper'
-def mongoid_present?
- require 'mongoid'
- Mongoid.configure do |config|
- config.connect_to("reform-mongoid-test")
- end
- true
-rescue
- false
-end
+# require 'test_helper'
+# def mongoid_present?
+# require 'mongoid'
+# Mongoid.configure do |config|
+# config.connect_to("reform-mongoid-test")
+# end
+# true
+# rescue
+# false
+# end
-if mongoid_present?
- require 'reform/mongoid'
+# if mongoid_present?
+# require 'reform/mongoid'
- class Disc
- include Mongoid::Document
- field :title, type: String
- has_many :tunes
- has_and_belongs_to_many :musicians
- end
+# class Disc
+# include Mongoid::Document
+# field :title, type: String
+# has_many :tunes
+# has_and_belongs_to_many :musicians
+# end
- class Musician
- include Mongoid::Document
- field :name, type: String
- end
+# class Musician
+# include Mongoid::Document
+# field :name, type: String
+# end
- class Tune
- include Mongoid::Document
- include Mongoid::Timestamps
- field :title, type: String
- belongs_to :disc
- belongs_to :musician
- end
+# class Tune
+# include Mongoid::Document
+# include Mongoid::Timestamps
+# field :title, type: String
+# belongs_to :disc
+# belongs_to :musician
+# end
- class MongoidTest < MiniTest::Spec
- class TuneForm < Reform::Form
- include Reform::Form::Mongoid
- model :tune
+# class MongoidTest < MiniTest::Spec
+# class TuneForm < Reform::Form
+# include Reform::Form::Mongoid
+# model :tune
- property :title
- property :created_at
+# property :title
+# property :created_at
- validates_uniqueness_of :title, scope: [:disc_id, :musician_id]
- validates :created_at, :presence => true # have another property to test if we mix up.
+# validates_uniqueness_of :title, scope: [:disc_id, :musician_id]
+# validates :created_at, :presence => true # have another property to test if we mix up.
- property :musician do
- property :name
- validates_uniqueness_of :name # this currently also tests if Form::AR is included as a feature.
- end
- end
+# property :musician do
+# property :name
+# validates_uniqueness_of :name # this currently also tests if Form::AR is included as a feature.
+# end
+# end
- let(:disc) { Disc.create(:title => "Damnation") }
- let(:musician) { Musician.create(:name => "Opeth") }
- let(:form) { TuneForm.new(Tune.new(:musician => Musician.new)) }
+# let(:disc) { Disc.create(:title => "Damnation") }
+# let(:musician) { Musician.create(:name => "Opeth") }
+# let(:form) { TuneForm.new(Tune.new(:musician => Musician.new)) }
- it { form.class.i18n_scope.must_equal :mongoid }
+# it { form.class.i18n_scope.must_equal :mongoid }
- it "allows accessing the database" do
- end
+# it "allows accessing the database" do
+# end
- # uniqueness
- it "has no errors on title when title is unique for the same musician and disc" do
- form.validate("title" => "The Gargoyle", "musician_id" => musician.id, "disc" => disc.id, "created_at" => "November 6, 1966")
- assert_empty form.errors[:title]
- end
+# # uniqueness
+# it "has no errors on title when title is unique for the same musician and disc" do
+# form.validate("title" => "The Gargoyle", "musician_id" => musician.id, "disc" => disc.id, "created_at" => "November 6, 1966")
+# assert_empty form.errors[:title]
+# end
- it "has errors on title when title is taken for the same musician and disc" do
- skip "replace ActiveModel::Validations with our own, working and reusable gem."
- Tune.create(title: "Windowpane", musician_id: musician.id, disc_id: disc.id)
- form.validate("title" => "Windowpane", "musician_id" => musician.id, "disc" => disc)
- refute_empty form.errors[:title]
- end
+# it "has errors on title when title is taken for the same musician and disc" do
+# skip "replace ActiveModel::Validations with our own, working and reusable gem."
+# Tune.create(title: "Windowpane", musician_id: musician.id, disc_id: disc.id)
+# form.validate("title" => "Windowpane", "musician_id" => musician.id, "disc" => disc)
+# refute_empty form.errors[:title]
+# end
- # nested object taken.
- it "is valid when musician name is unique" do
- form.validate("musician" => {"name" => "Paul Gilbert"}, "title" => "The Gargoyle", "created_at" => "November 6, 1966").must_equal true
- end
+# # nested object taken.
+# it "is valid when musician name is unique" do
+# form.validate("musician" => {"name" => "Paul Gilbert"}, "title" => "The Gargoyle", "created_at" => "November 6, 1966").must_equal true
+# end
- it "is invalid and shows error when taken" do
- Tune.delete_all
- Musician.create(:name => "Racer X")
+# it "is invalid and shows error when taken" do
+# Tune.delete_all
+# Musician.create(:name => "Racer X")
- form.validate("musician" => {"name" => "Racer X"}, "title" => "Ghost Inside My Skin").must_equal false
- form.errors.messages.must_equal({:"musician.name"=>["is already taken"], :created_at => ["can't be blank"]})
- end
+# form.validate("musician" => {"name" => "Racer X"}, "title" => "Ghost Inside My Skin").must_equal false
+# form.errors.messages.must_equal({:"musician.name"=>["is already taken"], :created_at => ["can't be blank"]})
+# end
- it "works with Composition" do
- form = Class.new(Reform::Form) do
- include Reform::Form::Mongoid
- include Reform::Form::Composition
+# it "works with Composition" do
+# form = Class.new(Reform::Form) do
+# include Reform::Form::Mongoid
+# include Reform::Form::Composition
- property :name, :on => :musician
- validates_uniqueness_of :name
- end.new(:musician => Musician.new)
+# property :name, :on => :musician
+# validates_uniqueness_of :name
+# end.new(:musician => Musician.new)
- Musician.create(:name => "Bad Religion")
- form.validate("name" => "Bad Religion").must_equal false
- end
+# Musician.create(:name => "Bad Religion")
+# form.validate("name" => "Bad Religion").must_equal false
+# end
- describe "#save" do
- # TODO: test 1-n?
- it "calls model.save" do
- Musician.delete_all
- form.validate("musician" => {"name" => "Bad Religion"}, "title" => "Ghost Inside My Skin")
- form.save
- Musician.where(:name => "Bad Religion").size.must_equal 1
- end
+# describe "#save" do
+# # TODO: test 1-n?
+# it "calls model.save" do
+# Musician.delete_all
+# form.validate("musician" => {"name" => "Bad Religion"}, "title" => "Ghost Inside My Skin")
+# form.save
+# Musician.where(:name => "Bad Religion").size.must_equal 1
+# end
- it "doesn't call model.save when block is given" do
- Musician.delete_all
- form.validate("name" => "Bad Religion")
- form.save {}
- Musician.where(:name => "Bad Religion").size.must_equal 0
- end
- end
- end
+# it "doesn't call model.save when block is given" do
+# Musician.delete_all
+# form.validate("name" => "Bad Religion")
+# form.save {}
+# Musician.where(:name => "Bad Religion").size.must_equal 0
+# end
+# end
+# end
- class PopulateWithActiveRecordTest < MiniTest::Spec
- class DiscForm < Reform::Form
+# class PopulateWithActiveRecordTest < MiniTest::Spec
+# class DiscForm < Reform::Form
- property :title
+# property :title
- collection :tunes, :populate_if_empty => Tune do
- property :title
- end
- end
+# collection :tunes, :populate_if_empty => Tune do
+# property :title
+# end
+# end
- let (:disc) { Disc.new(:tunes => []) }
- it do
- form = DiscForm.new(disc)
+# let (:disc) { Disc.new(:tunes => []) }
+# it do
+# form = DiscForm.new(disc)
- form.validate("tunes" => [{"title" => "Straight From The Jacket"}])
+# form.validate("tunes" => [{"title" => "Straight From The Jacket"}])
- # form populated.
- form.tunes.size.must_equal 1
- form.tunes[0].model.must_be_kind_of Tune
+# # form populated.
+# form.tunes.size.must_equal 1
+# form.tunes[0].model.must_be_kind_of Tune
- # model NOT populated.
- disc.tunes.must_equal []
+# # model NOT populated.
+# disc.tunes.must_equal []
- form.sync
+# form.sync
- # form populated.
- form.tunes.size.must_equal 1
- form.tunes[0].model.must_be_kind_of Tune
+# # form populated.
+# form.tunes.size.must_equal 1
+# form.tunes[0].model.must_be_kind_of Tune
- # model also populated.
- tune = disc.tunes[0]
- disc.tunes.must_equal [tune]
- tune.title.must_equal "Straight From The Jacket"
+# # model also populated.
+# tune = disc.tunes[0]
+# disc.tunes.must_equal [tune]
+# tune.title.must_equal "Straight From The Jacket"
- # if ActiveRecord::VERSION::STRING !~ /^3.0/
- # # saving saves association.
- # form.save
- #
- # disc.reload
- # tune = disc.tunes[0]
- # disc.tunes.must_equal [tune]
- # tune.title.must_equal "Straight From The Jacket"
- # end
- end
+# # if ActiveRecord::VERSION::STRING !~ /^3.0/
+# # # saving saves association.
+# # form.save
+# #
+# # disc.reload
+# # tune = disc.tunes[0]
+# # disc.tunes.must_equal [tune]
+# # tune.title.must_equal "Straight From The Jacket"
+# # end
+# end
- describe "modifying 1., adding 2." do
- let (:tune) { Tune.new(:title => "Part 2") }
- let (:disc) { Disc.create.tap { |a| a.tunes << tune } }
+# describe "modifying 1., adding 2." do
+# let (:tune) { Tune.new(:title => "Part 2") }
+# let (:disc) { Disc.create.tap { |a| a.tunes << tune } }
- it do
- form = DiscForm.new(disc)
+# it do
+# form = DiscForm.new(disc)
- id = disc.tunes[0].id
- disc.tunes[0].persisted?.must_equal true
- assert id.to_s.size > 0
+# id = disc.tunes[0].id
+# disc.tunes[0].persisted?.must_equal true
+# assert id.to_s.size > 0
- form.validate("tunes" => [{"title" => "Part Two"}, {"title" => "Check For A Pulse"}])
+# form.validate("tunes" => [{"title" => "Part Two"}, {"title" => "Check For A Pulse"}])
- # form populated.
- form.tunes.size.must_equal 2
- form.tunes[0].model.must_be_kind_of Tune
- form.tunes[1].model.must_be_kind_of Tune
+# # form populated.
+# form.tunes.size.must_equal 2
+# form.tunes[0].model.must_be_kind_of Tune
+# form.tunes[1].model.must_be_kind_of Tune
- # model NOT populated.
- disc.tunes.must_equal [tune]
+# # model NOT populated.
+# disc.tunes.must_equal [tune]
- form.sync
+# form.sync
- # form populated.
- form.tunes.size.must_equal 2
+# # form populated.
+# form.tunes.size.must_equal 2
- # model also populated.
- disc.tunes.size.must_equal 2
+# # model also populated.
+# disc.tunes.size.must_equal 2
- # corrected title
- disc.tunes[0].title.must_equal "Part Two"
- # ..but same tune.
- disc.tunes[0].id.must_equal id
+# # corrected title
+# disc.tunes[0].title.must_equal "Part Two"
+# # ..but same tune.
+# disc.tunes[0].id.must_equal id
- # and a new tune.
- disc.tunes[1].title.must_equal "Check For A Pulse"
- disc.tunes[1].persisted?.must_equal true # TODO: with << strategy, this shouldn't be saved.
- end
+# # and a new tune.
+# disc.tunes[1].title.must_equal "Check For A Pulse"
+# disc.tunes[1].persisted?.must_equal true # TODO: with << strategy, this shouldn't be saved.
+# end
- describe 'using nested_models_attributes to modify nested collection' do
- class ActiveModelDiscForm < Reform::Form
- include Reform::Form::ActiveModel
- include Reform::Form::ActiveModel::FormBuilderMethods
+# describe 'using nested_models_attributes to modify nested collection' do
+# class ActiveModelDiscForm < Reform::Form
+# include Reform::Form::ActiveModel
+# include Reform::Form::ActiveModel::FormBuilderMethods
- property :title
+# property :title
- collection :tunes, :populate_if_empty => Tune do
- property :title
- end
- end
+# collection :tunes, :populate_if_empty => Tune do
+# property :title
+# end
+# end
- let (:disc) { Disc.create(:title => 'Greatest Hits') }
- let (:form) { ActiveModelDiscForm.new(disc) }
+# let (:disc) { Disc.create(:title => 'Greatest Hits') }
+# let (:form) { ActiveModelDiscForm.new(disc) }
- it do
- form.validate('tunes_attributes' => {'0' => {'title' => 'Tango'}})
+# it do
+# form.validate('tunes_attributes' => {'0' => {'title' => 'Tango'}})
- # form populated.
- form.tunes.size.must_equal 1
- form.tunes[0].model.must_be_kind_of Tune
- form.tunes[0].title.must_equal 'Tango'
+# # form populated.
+# form.tunes.size.must_equal 1
+# form.tunes[0].model.must_be_kind_of Tune
+# form.tunes[0].title.must_equal 'Tango'
- # model NOT populated.
- disc.tunes.must_equal []
+# # model NOT populated.
+# disc.tunes.must_equal []
- form.save
+# form.save
- # nested model persisted.
- first_tune = disc.tunes[0]
- first_tune.persisted?.must_equal true
- assert first_tune.id.to_s.size > 0
+# # nested model persisted.
+# first_tune = disc.tunes[0]
+# first_tune.persisted?.must_equal true
+# assert first_tune.id.to_s.size > 0
- # form populated.
- form.tunes.size.must_equal 1
+# # form populated.
+# form.tunes.size.must_equal 1
- # model also populated.
- disc.tunes.size.must_equal 1
- disc.tunes[0].title.must_equal 'Tango'
+# # model also populated.
+# disc.tunes.size.must_equal 1
+# disc.tunes[0].title.must_equal 'Tango'
- form = ActiveModelDiscForm.new(disc)
- form.validate('tunes_attributes' => {'0' => {'id' => first_tune.id, 'title' => 'Tango nuevo'}, '1' => {'title' => 'Waltz'}})
+# form = ActiveModelDiscForm.new(disc)
+# form.validate('tunes_attributes' => {'0' => {'id' => first_tune.id, 'title' => 'Tango nuevo'}, '1' => {'title' => 'Waltz'}})
- # form populated.
- form.tunes.size.must_equal 2
- form.tunes[0].model.must_be_kind_of Tune
- form.tunes[1].model.must_be_kind_of Tune
- form.tunes[0].title.must_equal 'Tango nuevo'
- form.tunes[1].title.must_equal 'Waltz'
+# # form populated.
+# form.tunes.size.must_equal 2
+# form.tunes[0].model.must_be_kind_of Tune
+# form.tunes[1].model.must_be_kind_of Tune
+# form.tunes[0].title.must_equal 'Tango nuevo'
+# form.tunes[1].title.must_equal 'Waltz'
- # model NOT populated.
- disc.tunes.size.must_equal 1
- disc.tunes[0].title.must_equal 'Tango'
+# # model NOT populated.
+# disc.tunes.size.must_equal 1
+# disc.tunes[0].title.must_equal 'Tango'
- form.save
+# form.save
- # form populated.
- form.tunes.size.must_equal 2
+# # form populated.
+# form.tunes.size.must_equal 2
- # model also populated.
- disc.tunes.size.must_equal 2
- disc.tunes[0].id.must_equal first_tune.id
- disc.tunes[0].persisted?.must_equal true
- disc.tunes[1].persisted?.must_equal true
- disc.tunes[0].title.must_equal 'Tango nuevo'
- disc.tunes[1].title.must_equal 'Waltz'
- end
- end
- end
+# # model also populated.
+# disc.tunes.size.must_equal 2
+# disc.tunes[0].id.must_equal first_tune.id
+# disc.tunes[0].persisted?.must_equal true
+# disc.tunes[1].persisted?.must_equal true
+# disc.tunes[0].title.must_equal 'Tango nuevo'
+# disc.tunes[1].title.must_equal 'Waltz'
+# end
+# end
+# end
- # it do
- # a=Disc.new
- # a.tunes << Tune.new(title: "Old What's His Name") # Tune does not get persisted.
+# # it do
+# # a=Disc.new
+# # a.tunes << Tune.new(title: "Old What's His Name") # Tune does not get persisted.
- # a.tunes[1] = Tune.new(title: "Permanent Rust")
+# # a.tunes[1] = Tune.new(title: "Permanent Rust")
- # puts "@@@"
- # puts a.tunes.inspect
+# # puts "@@@"
+# # puts a.tunes.inspect
- # puts "---"
- # a.save
- # puts a.tunes.inspect
+# # puts "---"
+# # a.save
+# # puts a.tunes.inspect
- # b = a.tunes.first
+# # b = a.tunes.first
- # a.tunes = [Tune.new(title:"Biomag")]
- # puts "\\\\"
- # a.save
- # a.reload
- # puts a.tunes.inspect
+# # a.tunes = [Tune.new(title:"Biomag")]
+# # puts "\\\\"
+# # a.save
+# # a.reload
+# # puts a.tunes.inspect
- # b.reload
- # puts "#{b.inspect}, #{b.persisted?}"
+# # b.reload
+# # puts "#{b.inspect}, #{b.persisted?}"
- # a.tunes = [a.tunes.first, Tune.new(title: "Count Down")]
- # b = a.tunes.first
- # puts ":::::"
- # a.save
- # a.reload
- # puts a.tunes.inspect
+# # a.tunes = [a.tunes.first, Tune.new(title: "Count Down")]
+# # b = a.tunes.first
+# # puts ":::::"
+# # a.save
+# # a.reload
+# # puts a.tunes.inspect
- # b.reload
- # puts "#{b.inspect}, #{b.persisted?}"
- # end
- end
-end
+# # b.reload
+# # puts "#{b.inspect}, #{b.persisted?}"
+# # end
+# end
+# end