qualifier_test.rb
2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# encoding: UTF-8
require_relative "../test_helper"
class QualifierTest < ActiveSupport::TestCase
should 'environment is mandatory' do
qualifier = Qualifier.new(:name => 'Qualifier without environment')
refute qualifier.valid?
qualifier.environment = fast_create(Environment)
assert qualifier.valid?
end
should 'belongs to environment' do
env_one = fast_create(Environment)
qualifier_from_env_one = env_one.qualifiers.create(:name => 'Qualifier from environment one')
env_two = fast_create(Environment)
qualifier_from_env_two = env_two.qualifiers.create(:name => 'Qualifier from environment two')
assert_includes env_one.qualifiers, qualifier_from_env_one
assert_not_includes env_one.qualifiers, qualifier_from_env_two
end
should 'name is mandatory' do
env_one = fast_create(Environment)
qualifier = env_one.qualifiers.build
refute qualifier.valid?
qualifier.name = 'Qualifier name'
assert qualifier.valid?
end
should 'sort by name' do
last = fast_create(Qualifier, :name => "Zumm")
first = fast_create(Qualifier, :name => "Atum")
assert_equal [first, last], Qualifier.all.sort
end
should 'sorting is not case sensitive' do
first = fast_create(Qualifier, :name => "Aaaa")
second = fast_create(Qualifier, :name => "abbb")
last = fast_create(Qualifier, :name => "Accc")
assert_equal [first, second, last], Qualifier.all.sort
end
should 'discard non-ascii char when sorting' do
first = fast_create(Qualifier, :name => "Áaaa")
last = fast_create(Qualifier, :name => "Aáab")
assert_equal [first, last], Qualifier.all.sort
end
should 'clean all ProductQualifier when destroy a Qualifier' do
product1 = fast_create(Product)
product2 = fast_create(Product)
qualifier = fast_create(Qualifier, :name => 'Free Software')
certifier = fast_create(Certifier, :name => 'FSF')
ProductQualifier.create!(:product => product1, :qualifier => qualifier, :certifier => certifier)
ProductQualifier.create!(:product => product2, :qualifier => qualifier, :certifier => certifier)
assert_equal [['Free Software', 'FSF']], product1.product_qualifiers.map{|i| [i.qualifier.name, i.certifier.name]}
Qualifier.destroy_all
assert_equal [], product1.product_qualifiers(true)
end
end