category.rb revision 6b0302da488ae6af64bcee37c0688f79d44668ce
7cb128dc4cae2a03a742f63ba7afee23c78e3af0Phil Carmodyrequire 'spec_helper'
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainendescribe Category do
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen context 'Migrations' do
31d32d39dd09be0625a6d92ee715155f5d679515Timo Sirainen it { should have_db_column('name').of_type(:text) }
9bbfe7f5ff821cac11d1d2550a91b148f389d82cTimo Sirainen end
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen context 'get ontologies of a category and subcategories' do
31d32d39dd09be0625a6d92ee715155f5d679515Timo Sirainen before do
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen edge = create(:c_edge)
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen onto1 = create(:ontology)
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen onto2 = create(:ontology)
55d33f807765482eb47374aaaced1fe714e0b256Timo Sirainen
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen onto1.categories = [Category.find(edge.parent_id)]
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen onto1.save!
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen onto2.categories = [Category.find(edge.child_id)]
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen onto2.save!
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen @parent_category = Category.find(edge.parent_id)
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen @child_category = Category.find(edge.child_id)
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen end
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen it 'parent ontology should have 2 related ontologies' do
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen @parent_category.related_ontologies.count.should == 2
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen end
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen it 'child ontology should have 1 related ontology' do
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen @child_category.related_ontologies.count.should == 1
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen end
d9b9687bf8cae9cfb070b1b7aadefa683220269fTimo Sirainen end
d9b9687bf8cae9cfb070b1b7aadefa683220269fTimo Sirainen
d9b9687bf8cae9cfb070b1b7aadefa683220269fTimo Sirainen context 'creation of categories from ontology' do
d9b9687bf8cae9cfb070b1b7aadefa683220269fTimo Sirainen before do
d9b9687bf8cae9cfb070b1b7aadefa683220269fTimo Sirainen @user = create :user
d9b9687bf8cae9cfb070b1b7aadefa683220269fTimo Sirainen @ontology = create :single_ontology
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen parse_this(@user, @ontology, fixture_file('Domain_Fields_Core.xml'), fixture_file('Domain_Fields_Core.pp.xml'))
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen @ontology.create_categories
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen end
0c47c2096714b50880d48d00ce0bf28349eb4aceTimo Sirainen
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen it 'should be the correct categories count' do
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen Category.count.should == 123
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen end
9eef11df882f9c14d164f42cb438f32fe724041cTimo Sirainen
9eef11df882f9c14d164f42cb438f32fe724041cTimo Sirainen it 'should be the correct category edges count' do
9eef11df882f9c14d164f42cb438f32fe724041cTimo Sirainen CEdge.count.should == 122
9eef11df882f9c14d164f42cb438f32fe724041cTimo Sirainen end
678d0463849ba777106eb7875f27db07a5d8e3dfTimo Sirainen end
a75d470c9223a75801418fcdda258885c36317e0Timo Sirainen
678d0463849ba777106eb7875f27db07a5d8e3dfTimo Sirainenend
7bd5b1c64cc987715bdaf8cc4907c3c37d5d7b29Timo Sirainen