From 01d3165e52c24c0e94a588f370599f3ea04c0bd3 Mon Sep 17 00:00:00 2001 From: Luciano Prestes Cavalcanti Date: Tue, 1 Dec 2015 13:52:37 +0100 Subject: [PATCH] fix unit tests of softare community --- src/noosfero-spb/software_communities/db/migrate/20151125175514_change_software_info_structure.rb | 6 +++--- src/noosfero-spb/software_communities/lib/create_software.rb | 22 +++++++++++++--------- src/noosfero-spb/software_communities/lib/software_info.rb | 11 ++++++++--- src/noosfero-spb/software_communities/test/helpers/plugin_test_helper.rb | 20 +++++++++++--------- src/noosfero-spb/software_communities/test/unit/communities_block_test.rb | 2 +- src/noosfero-spb/software_communities/test/unit/software_communities_person_test.rb | 2 +- src/noosfero-spb/software_communities/test/unit/software_events_block_test.rb | 16 +++++++++------- src/noosfero-spb/software_communities/test/unit/software_language_validation.rb | 10 ++++++++-- 8 files changed, 54 insertions(+), 35 deletions(-) diff --git a/src/noosfero-spb/software_communities/db/migrate/20151125175514_change_software_info_structure.rb b/src/noosfero-spb/software_communities/db/migrate/20151125175514_change_software_info_structure.rb index bd8dcf0..6066677 100644 --- a/src/noosfero-spb/software_communities/db/migrate/20151125175514_change_software_info_structure.rb +++ b/src/noosfero-spb/software_communities/db/migrate/20151125175514_change_software_info_structure.rb @@ -1,7 +1,7 @@ -class CreateSispInfo < ActiveRecord::Migration +class ChangeSoftwareInfoStructure < ActiveRecord::Migration def up - create_table :sosftware_infos do |t| - t.integer :software_id + change_table :software_infos do |t| + t.references :software, index: true, foreign_key: true t.text :agency_identification t.text :softawre_requirements t.text :hardware_requirements diff --git a/src/noosfero-spb/software_communities/lib/create_software.rb b/src/noosfero-spb/software_communities/lib/create_software.rb index 2d313dd..aebe23e 100644 --- a/src/noosfero-spb/software_communities/lib/create_software.rb +++ b/src/noosfero-spb/software_communities/lib/create_software.rb @@ -26,18 +26,22 @@ class CreateSoftware < Task identifier = self.identifier identifier ||= self.name.to_slug - community = Community.create!(:name => self.name, - :identifier => identifier, - :template_id => template_id) + software = Software.new(:name => self.name, + :identifier => identifier, + :template_id => template_id) - community.environment = self.environment - community.add_admin(self.requestor) - software = SoftwareInfo.new(:finality => self.finality, - :repository_link => self.repository_link, :community_id => community.id, - :license_info => self.license_info) - software.verify_license_info(self.another_license_version, self.another_license_link) + software_info = SoftwareInfo.new(:finality => self.finality, + :repository_link => self.repository_link, + :license_info => self.license_info) + software_info.verify_license_info(self.another_license_version, self.another_license_link) + + software_info.software = software + software.software_info = software_info software.save! + + software.environment = self.environment + software.add_admin(self.requestor) end def title diff --git a/src/noosfero-spb/software_communities/lib/software_info.rb b/src/noosfero-spb/software_communities/lib/software_info.rb index 744ed0f..a4f7651 100644 --- a/src/noosfero-spb/software_communities/lib/software_info.rb +++ b/src/noosfero-spb/software_communities/lib/software_info.rb @@ -123,6 +123,10 @@ class SoftwareInfo < ActiveRecord::Base return self.software end + def community= community + self.software = community.becomes(Software) if community + end + def license_info license = LicenseInfo.find_by_id self.license_info_id license_another = LicenseInfo.find_by_version("Another") @@ -196,13 +200,14 @@ class SoftwareInfo < ActiveRecord::Base software.template_id = software_template.id end - software.save! - software.add_admin(requestor) - software_info.software = software software_info.license_info = license_info software_info.verify_license_info(another_license_version, another_license_link) software_info.save! + software.software_info = software_info + software.save! + software.add_admin(requestor) + end software_info diff --git a/src/noosfero-spb/software_communities/test/helpers/plugin_test_helper.rb b/src/noosfero-spb/software_communities/test/helpers/plugin_test_helper.rb index d7458ce..1b33bdf 100644 --- a/src/noosfero-spb/software_communities/test/helpers/plugin_test_helper.rb +++ b/src/noosfero-spb/software_communities/test/helpers/plugin_test_helper.rb @@ -1,21 +1,23 @@ module PluginTestHelper - def create_community name - community = fast_create(Community) - community.name = name - community.identifier = name.to_slug - community.save - community + def create_software name + software = Software.new + software.name = name + software.identifier = name.to_slug + software.save + software end def create_software_info name, finality = "something", acronym = "" - community = create_community(name) + software = create_software(name) software_info = SoftwareInfo.new - software_info.community = community + software_info.software = software software_info.finality = finality software_info.acronym = acronym software_info.public_software = true - software_info.save! + + software.software_info = software_info + software.save software_info end diff --git a/src/noosfero-spb/software_communities/test/unit/communities_block_test.rb b/src/noosfero-spb/software_communities/test/unit/communities_block_test.rb index e10251b..8f53a61 100644 --- a/src/noosfero-spb/software_communities/test/unit/communities_block_test.rb +++ b/src/noosfero-spb/software_communities/test/unit/communities_block_test.rb @@ -9,7 +9,7 @@ class CommunitiesBlockTest < ActiveSupport::TestCase @software_info = create_software_info("Novo Software") @software_info.community.add_member(@person) - @community = create_community("Nova Comunidade") + @community = fast_create(Community) @community.add_member(@person) diff --git a/src/noosfero-spb/software_communities/test/unit/software_communities_person_test.rb b/src/noosfero-spb/software_communities/test/unit/software_communities_person_test.rb index 3db9473..ee5f1f4 100644 --- a/src/noosfero-spb/software_communities/test/unit/software_communities_person_test.rb +++ b/src/noosfero-spb/software_communities/test/unit/software_communities_person_test.rb @@ -27,7 +27,7 @@ class GovUserPluginPersonTest < ActiveSupport::TestCase should 'get a list of softwares of a person' do software1 = create_software_info "noosfero" software2 = create_software_info "colab" - community = create_community "simple_community" + community = fast_create(Community) software1.community.add_member @person software1.save! diff --git a/src/noosfero-spb/software_communities/test/unit/software_events_block_test.rb b/src/noosfero-spb/software_communities/test/unit/software_events_block_test.rb index e0403b0..13100e6 100644 --- a/src/noosfero-spb/software_communities/test/unit/software_events_block_test.rb +++ b/src/noosfero-spb/software_communities/test/unit/software_events_block_test.rb @@ -5,12 +5,14 @@ class SoftwareEventsBlockTest < ActiveSupport::TestCase include PluginTestHelper def setup - @community = create_community("A new community") + @software = fast_create(Community) + @software = create_software_info("a software").software + @software.boxes.destroy_all @software_events_block = SoftwareEventsBlock.new box = Box.new box.position = 1 - box.owner = @community + box.owner = @software box.blocks << @software_events_block box.save! @@ -23,10 +25,10 @@ class SoftwareEventsBlockTest < ActiveSupport::TestCase @e3 = Event.new :name=>"Event 3", :body=>"Event 3 body", :start_date=>(DateTime.now - 20.days), :end_date=>(DateTime.now - 10.days) - @community.events << @e1 - @community.events << @e2 - @community.events << @e3 - @community.save! + @software.events << @e1 + @software.events << @e2 + @software.events << @e3 + @software.save! end should "give community events that have not yet finished ordered by start date" do @@ -46,7 +48,7 @@ class SoftwareEventsBlockTest < ActiveSupport::TestCase should "tell if there are events to be displayed" do assert_equal true, @software_events_block.has_events_to_display? - @community.events.update_all :start_date => (DateTime.now - 2.days), + @software.events.update_all :start_date => (DateTime.now - 2.days), :end_date => (DateTime.now - 1.day) assert_equal false, @software_events_block.has_events_to_display? diff --git a/src/noosfero-spb/software_communities/test/unit/software_language_validation.rb b/src/noosfero-spb/software_communities/test/unit/software_language_validation.rb index 8a1b21d..c4fef33 100644 --- a/src/noosfero-spb/software_communities/test/unit/software_language_validation.rb +++ b/src/noosfero-spb/software_communities/test/unit/software_language_validation.rb @@ -46,9 +46,11 @@ class SoftwareLanguageValidationTest < ActiveSupport::TestCase end def create_software_info + software = Software.new + software_info = SoftwareInfo.new - software_info.community_id = fast_create(Community).id - software_info.community.name = 'Noosfero' + software_info.software = software + software_info.software.name = 'Noosfero' software_info.e_mag = true software_info.icp_brasil = true software_info.intern = true @@ -57,6 +59,10 @@ class SoftwareLanguageValidationTest < ActiveSupport::TestCase software_info.operating_platform = 'GNU/Linux' software_info.features = "Do a lot of things" software_info.objectives = "All tests should pass !" + software_info.finality = "Teste" + + software.software_info = software_info + software.save! software_info end -- libgit2 0.21.2