Skip to content

Commit

Permalink
taxon_name_spec update
Browse files Browse the repository at this point in the history
  • Loading branch information
proceps committed Jan 8, 2014
1 parent 8c18772 commit 219f1b3
Show file tree
Hide file tree
Showing 8 changed files with 25 additions and 8 deletions.
6 changes: 3 additions & 3 deletions app/models/taxon_name.rb
Original file line number Diff line number Diff line change
Expand Up @@ -330,8 +330,8 @@ def sv_validate_disjoint_objects
compare = disjoint_object_classes & classification_names
compare.each do |i|
relationships.each do |j|
disjoint_object_classes j.type_class.disjoint_object_classes
soft_validations.add(:base, "Taxon has a status ('#{i.constantize.class_name}') conflicting with a relationship: '#{j.constantize.object_relationship_name}'") if disjoint_object_classes & [i] != 0
disjoint_object_classes = j.type_class.disjoint_object_classes
soft_validations.add(:base, "Taxon has a status ('#{i.constantize.class_name}') conflicting with a relationship: '#{j.type.constantize.object_relationship_name}'") if disjoint_object_classes & [i] != 0
end
end
end
Expand All @@ -345,7 +345,7 @@ def sv_validate_disjoint_subjects
compare.each do |i|
relationships.each do |j|
disjoint_subject_classes j.type_class.disjoint_subject_classes
soft_validations.add(:base, "Taxon has a status ('#{i.constantize.class_name}') conflicting with a relationship: '#{j.constantize.subject_relationship_name}'") if disjoint_subject_classes & [i] != 0
soft_validations.add(:base, "Taxon has a status ('#{i.constantize.class_name}') conflicting with a relationship: '#{j.type.constantize.subject_relationship_name}'") if disjoint_subject_classes & [i] != 0
end
end
end
Expand Down
1 change: 1 addition & 0 deletions app/models/taxon_name_relationship/iczn/invalidating.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ def self.disjoint_taxon_name_relationships
def self.disjoint_subject_classes
self.parent.disjoint_subject_classes +
TaxonNameClassification::Iczn::Available::Valid.descendants.collect{|t| t.to_s} +
[TaxonNameClassification::Iczn::Available.to_s] +
[TaxonNameClassification::Iczn::Available::OfficialIndexOfAvailableNames.to_s] +
[TaxonNameClassification::Iczn::Available::OfficialListOfAvailableNames.to_s] +
[TaxonNameClassification::Iczn::Available::OfficialListOfWorksApprovedAsAvailable.to_s]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ def self.disjoint_taxon_name_relationships
def self.disjoint_object_classes
self.parent.disjoint_object_classes +
TaxonNameClassification::Iczn::Unavailable.descendants.collect{|t| t.to_s} +
[TaxonNameClassification::Iczn::Unavailable.to_s] +
TaxonNameClassification::Iczn::Available::Invalid.descendants.collect{|t| t.to_s}
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@ class TaxonNameRelationship::Iczn::PotentiallyValidating < TaxonNameRelationship
def self.disjoint_subject_classes
self.parent.disjoint_subject_classes +
TaxonNameClassification::Iczn::Unavailable.descendants.collect{|t| t.to_s} +
[TaxonNameClassification::Iczn::Unavailable.to_s] +
[TaxonNameClassification::Iczn::Available::Invalid.to_s]
end

def self.disjoint_object_classes
self.parent.disjoint_object_classes +
TaxonNameClassification::Iczn::Unavailable.descendants.collect{|t| t.to_s} +
[TaxonNameClassification::Iczn::Unavailable.to_s] +
[TaxonNameClassification::Iczn::Available::OfficialIndexOfAvailableNames.to_s] +
[TaxonNameClassification::Iczn::Available::OfficialListOfAvailableNames.to_s] +
[TaxonNameClassification::Iczn::Available::OfficialListOfWorksApprovedAsAvailable.to_s] +
Expand Down
1 change: 1 addition & 0 deletions app/models/taxon_name_relationship/iczn/validating.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ def self.disjoint_taxon_name_relationships
def self.disjoint_subject_classes
self.parent.disjoint_subject_classes +
TaxonNameClassification::Iczn::Unavailable.descendants.collect{|t| t.to_s} +
[TaxonNameClassification::Iczn::Unavailable.to_s] +
[TaxonNameClassification::Iczn::Available::Invalid.to_s]
end

Expand Down
4 changes: 3 additions & 1 deletion app/models/taxon_name_relationship/source_classified_as.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ def self.disjoint_taxon_name_relationships
def self.disjoint_subject_classes
[TaxonNameClassification::Icn::NotEffectivelyPublished.to_s] +
TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished.descendants.collect{|t| t.to_s} +
TaxonNameClassification::Iczn::Unavailable.descendants.collect{|t| t.to_s}
TaxonNameClassification::Iczn::Unavailable.descendants.collect{|t| t.to_s} +
[TaxonNameClassification::Iczn::Unavailable.to_s]

end

def self.object_relationship_name
Expand Down
6 changes: 4 additions & 2 deletions app/models/taxon_name_relationship/typification.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,15 @@ def self.disjoint_taxon_name_relationships
def self.disjoint_subject_classes
[TaxonNameClassification::Icn::NotEffectivelyPublished.to_s] +
TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished.descendants.collect{|t| t.to_s} +
TaxonNameClassification::Iczn::Unavailable.descendants.collect{|t| t.to_s}
TaxonNameClassification::Iczn::Unavailable.descendants.collect{|t| t.to_s} +
[TaxonNameClassification::Iczn::Unavailable.to_s]
end

def self.disjoint_object_classes
[TaxonNameClassification::Icn::NotEffectivelyPublished.to_s] +
TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished.descendants.collect{|t| t.to_s} +
TaxonNameClassification::Iczn::Unavailable.descendants.collect{|t| t.to_s}
TaxonNameClassification::Iczn::Unavailable.descendants.collect{|t| t.to_s} +
[TaxonNameClassification::Iczn::Unavailable.to_s]
end


Expand Down
12 changes: 10 additions & 2 deletions spec/models/taxon_name_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -328,16 +328,24 @@
expect(s.soft_validations.messages_on(:base).count).to eq(2)
expect(r3.valid?).to be_true
end

specify 'disjoint classes' do
g = FactoryGirl.create(:iczn_genus, parent: @family)
s = FactoryGirl.create(:iczn_species, parent: g)
r1 = FactoryGirl.create(:taxon_name_relationship, subject_taxon_name: g, object_taxon_name: s, type: TaxonNameRelationship::OriginalCombination::OriginalGenus)
c1 = FactoryGirl.create(:taxon_name_classification, taxon_name: s, type: TaxonNameClassification::Iczn::Unavailable::NonBinomial)
c1 = FactoryGirl.create(:taxon_name_classification, taxon_name: s, type: TaxonNameClassification::Iczn::Unavailable)
c2 = FactoryGirl.create(:taxon_name_classification, taxon_name: s, type: TaxonNameClassification::Iczn::Available::OfficialListOfAvailableNames)
s.soft_validate
expect(s.soft_validations.messages_on(:base).count).to eq(2)
end
specify 'disjoint objects' do
g = FactoryGirl.create(:iczn_genus, parent: @family)
s = FactoryGirl.create(:iczn_species, parent: g)
r1 = FactoryGirl.create(:taxon_name_relationship, subject_taxon_name: g, object_taxon_name: s, type: TaxonNameRelationship::OriginalCombination::OriginalGenus)
r2 = FactoryGirl.create(:taxon_name_relationship, subject_taxon_name: s, object_taxon_name: g, type: TaxonNameRelationship::Typification::Genus::OriginalDesignation)
c1 = FactoryGirl.create(:taxon_name_classification, taxon_name: g, type: TaxonNameClassification::Iczn::Unavailable)
g.soft_validate
expect(g.soft_validations.messages_on(:base).count).to eq(1)
end
end
end

Expand Down

0 comments on commit 219f1b3

Please sign in to comment.