diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2013-11-02 12:01:31 -0700 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2013-11-02 12:01:31 -0700 |
commit | db41eb8a6ea88b854bf5cd11070ea4245e1639c5 (patch) | |
tree | 7ce7308e9b1a46bb61ece82f43af1338eb64d501 /activerecord/test/cases | |
parent | deaf285824fa7d2aaf24619eefdb0893c0069bc0 (diff) | |
download | rails-db41eb8a6ea88b854bf5cd11070ea4245e1639c5.tar.gz rails-db41eb8a6ea88b854bf5cd11070ea4245e1639c5.tar.bz2 rails-db41eb8a6ea88b854bf5cd11070ea4245e1639c5.zip |
Added ActiveRecord::Base#enum for declaring enum attributes where the values map to integers in the database, but can be queried by name
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/enum_test.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/activerecord/test/cases/enum_test.rb b/activerecord/test/cases/enum_test.rb new file mode 100644 index 0000000000..9855261e4d --- /dev/null +++ b/activerecord/test/cases/enum_test.rb @@ -0,0 +1,36 @@ +require 'cases/helper' +require 'models/book' + +class StoreTest < ActiveRecord::TestCase + fixtures :books + + setup do + @book = Book.create! name: 'REMOTE' + end + + test "query state by predicate" do + assert @book.proposed? + assert_not @book.written? + assert_not @book.published? + end + + test "query state with symbol" do + assert_equal :proposed, @book.status + end + + test "update by declaration" do + @book.written! + assert @book.written? + end + + test "update by setter" do + @book.update! status: :written + assert @book.written? + end + + test "constant" do + assert_equal 0, Book::STATUS[:proposed] + assert_equal 1, Book::STATUS[:written] + assert_equal 2, Book::STATUS[:published] + end +end |