software_info_validation_test.rb
4.04 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
require 'test_helper'
class SoftwareInfoValidationTest < ActiveSupport::TestCase
def setup
@software = fast_create(
SoftwareCommunitiesPlugin::Software,
:identifier => 'new-software',
:name => 'New Software'
)
@language = SoftwareCommunitiesPlugin::ProgrammingLanguage.new(:name => 'C++')
@language.save
@software_language = SoftwareCommunitiesPlugin::SoftwareLanguage.new(
:version => '1'
)
@software_language.programming_language = @language
@software_language.save
@database = SoftwareCommunitiesPlugin::DatabaseDescription.new(:name => 'Oracle')
@database.save
@software_database = SoftwareCommunitiesPlugin::SoftwareDatabase.new(
:version => '2'
)
@software_database.database_description = @database
@software_database.save
@operating_system_name = SoftwareCommunitiesPlugin::OperatingSystemName.new(:name => 'Debian')
@operating_system_name.save
@operating_system = SoftwareCommunitiesPlugin::OperatingSystem.new(:version => '1.0')
@operating_system.operating_system_name = @operating_system_name
@operating_system.save
@license_info = SoftwareCommunitiesPlugin::LicenseInfo.create(:version => 'New License', :link => '#')
@software_info = SoftwareCommunitiesPlugin::SoftwareInfo.new(
:acronym => "SFTW",
:e_mag => true,
:icp_brasil => true,
:intern => true,
:e_ping => true,
:e_arq => true,
:operating_platform => true,
:objectives => "",
:features => "",
:finality => "something",
:license_info => @license_info
)
@software_info.software_languages << @software_language
@software_info.software_databases << @software_database
@software_info.operating_systems << @operating_system
@software_info.features = "Do a lot of things"
@software_info.objectives = "All tests should pass !"
@software_info.software = @software
end
should 'Save SoftwareInfo if all fields are filled' do
assert_equal true, @software_info.save
end
should 'Save SoftwareInfo if operating_platform is blank' do
@software_info.operating_platform = ''
assert_equal true, @software_info.save
end
should 'Save SoftwareInfo without demonstration_url be filled' do
@software_info.demonstration_url = ''
assert_equal true, @software_info.save
end
should "Save SoftwareInfo if acronym is blank" do
@software_info.acronym = ""
assert_equal true, @software_info.save
end
should "Not save SoftwareInfo if acronym has more than 8 characters" do
@software_info.acronym = "12345678901"
assert_equal false, @software_info.save
end
should "Save SoftwareInfo if acronym has whitespaces" do
@software_info.acronym = "AC DC"
assert_equal false, @software_info.save
end
should "Save if objectives are empty" do
@software_info.objectives = ""
assert_equal true, @software_info.save
end
should "Save if features are empty" do
@software_info.features = ""
assert_equal true, @software_info.save
end
should "Not save if features are longer than 4000" do
@software_info.features = "a"*4001
error_msg = _("Features is too long (maximum is 4000 characters)")
assert_equal false, @software_info.save
assert_equal true, @software_info.errors.full_messages.include?(error_msg)
end
should "Not save if objectives are longer than 4000" do
@software_info.objectives = "a"*4001
error_msg = _("Objectives is too long (maximum is 4000 characters)")
assert_equal false, @software_info.save
assert_equal true, @software_info.errors.full_messages.include?(error_msg)
end
should "not save software without license" do
@software_info.license_info = nil
assert_equal false, @software_info.save
end
end