3 class ProductTest
< ActiveSupport
::TestCase
7 test
"Invalid with empty attributes" do
10 assert product
.errors
.invalid
?(:title)
11 assert product
.errors
.invalid
?(:description)
12 assert product
.errors
.invalid
?(:price)
13 assert product
.errors
.invalid
?(:image_url)
16 test
"positive price" do
17 product
= Product
.new(:title => "My Book Title" ,
18 :description => "yyy" ,
19 :image_url => "zzz.jpg" )
21 assert
!product
.valid
?
22 assert_equal
"should be at least 0.01" , product
.errors
.on(:price)
24 assert
!product
.valid
?
25 assert_equal
"should be at least 0.01" , product
.errors
.on(:price)
31 ok
= %w
{ fred
.gif fred
.jpg fred
.png FRED
.JPG FRED
.Jpg http
://a
.b
.c
/x/y
/z/fred
.gif
}
32 bad
= %w
{ fred
.doc fred
.gif
/more fred
.gif
.more
}
34 product
= Product
.new(:title => "My Book Title" ,
35 :description => "yyy" ,
38 assert product
.valid
?, product
.errors
.full_messages
41 product
= Product
.new(:title => "My Book Title" ,
42 :description => "yyy" ,
45 assert
!product
.valid
?, "saving #{name}"
49 test
"unique title" do
50 product
= Product
.new(:title => products(:ruby_book).title
,
51 :description => "yyy" ,
53 :image_url => "fred.gif" )
55 assert_equal I18n
.translate('activerecord.errors.messages.taken'), product
.errors
.on(:title)