mpog_software_plugin_myprofile_controller_test.rb
3.87 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
require File.dirname(__FILE__) + '/../../../../test/test_helper'
require File.dirname(__FILE__) + '/../../controllers/mpog_software_plugin_myprofile_controller'
require File.dirname(__FILE__) + '/software_helper'
class MpogSoftwarePluginMyprofileController; def rescue_action(e) raise e end;
end
class MpogSoftwarePluginMyprofileControllerTest < ActionController::TestCase
include SoftwareHelper
def setup
@controller = MpogSoftwarePluginMyprofileController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
@person = create_user('person').person
@offer = create_user('Angela Silva')
@offer_1 = create_user('Ana de Souza')
@offer_2 = create_user('Angelo Roberto')
LicenseInfo.create(:version=>"CC-GPL-V2", :link=>"http://creativecommons.org/licenses/GPL/2.0/legalcode.pt")
ProgrammingLanguage.create(:name =>"language")
DatabaseDescription.create(:name => "database")
OperatingSystemName.create(:name=>"Debian")
login_as(@person.user.login)
e = Environment.default
e.enable_plugin('MpogSoftwarePlugin')
e.save!
end
attr_accessor :person, :offer
should 'Add offer to admin in new software' do
@hash_list = software_fields
@software = create_software @hash_list
@software.community.add_admin(@offer.person)
assert_equal @offer.id, Community.last.admins.last.id
end
should 'search new offers while creating a new software' do
offer_token = "An"
post :search_offerers, :profile => person.identifier,:q => offer_token
response = JSON.parse(@response.body)
assert_equal "Angelo Roberto",response[0]["name"]
assert_equal "Ana de Souza",response[1]["name"]
assert_equal "Angela Silva",response[2]["name"]
end
should 'make search for Ang for offerer in software creation' do
offer_token = "Ang"
post :search_offerers, :profile => person.identifier,:q => offer_token
response = JSON.parse(@response.body)
assert_equal "Angelo Roberto",response[0]["name"]
assert_equal "Angela Silva",response[1]["name"]
end
should 'not find any offerer for software creation' do
offer_token = "Jos"
post :search_offerers, :profile => person.identifier,:q => offer_token
response = JSON.parse(@response.body)
assert response.count == 0
end
should 'create a new software with all fields filled in' do
fields = software_fields
software = create_software(fields)
assert software.save
end
private
def software_fields
fields = Hash.new
fields_library = Hash.new
fields_language = Hash.new
fields_database = Hash.new
fields_license = Hash.new
fields_operating_system = Hash.new
#Fields for library
fields_library['version'] = 'test'
fields_library['name'] = 'test'
fields_library['license'] = 'test'
#Fields for software language
fields_language['version'] = 'test'
fields_language['programming_language_id'] = ProgrammingLanguage.last.id
fields_language['operating_system'] = 'test'
#Fields for database
fields_database['version'] = 'test'
fields_database['database_description_id'] = DatabaseDescription.last.id
fields_database['operating_system'] = 'test'
#Fields for license info
fields_license['version'] = 'teste'
fields_license['link'] = 'teste'
#Fields for operating system
fields_operating_system['version'] = 'version'
fields_operating_system['operating_system_name_id'] = OperatingSystemName.last.id
fields['acronym'] = 'test'
fields['objectives'] = 'test'
fields['features'] = 'test'
fields['operating_platform'] = 'operating_plataform_test'
fields['demonstration_url'] = 'test'
hash_list = []
hash_list << fields
hash_list << fields_library
hash_list << fields_language
hash_list << fields_database
hash_list << fields_operating_system
hash_list << fields_license
hash_list
end
end