aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases/enum_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/test/cases/enum_test.rb')
-rw-r--r--activerecord/test/cases/enum_test.rb36
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