hets_test.rb revision d20f7eac0fec3aba332e1f53d1f2d1c584786eb6
5cd4555ad444fd391002ae32450572054369fd42Rob Austeinrequire 'test_helper'
5cd4555ad444fd391002ae32450572054369fd42Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinclass HetsTest < ActiveSupport::TestCase
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington context 'Output directory parameter' do
0e27506ce3135f9bd49e12564ad0e15256135118Automatic Updater setup do
c651f15b30f1dae5cc2f00878fb5da5b3a35a468Mark Andrews @xml_path = Hets.parse Rails.root.join('test/fixtures/ontologies/owl/pizza.owl'), [], '/tmp'
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington end
ec5347e2c775f027573ce5648b910361aa926c01Automatic Updater
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington should 'correctly be used' do
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington assert @xml_path.starts_with? '/tmp'
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington end
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews teardown do
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews File.delete @xml_path
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews end
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews end
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews %w(owl/pizza.owl owl/generations.owl clif/cat.clif).each do |path|
d4ef65050feac78554addf6e16a06c6e2e0bd331Brian Wellington context path do
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark Andrews setup do
0e27506ce3135f9bd49e12564ad0e15256135118Automatic Updater @xml_path = Hets.parse Rails.root.join("test/fixtures/ontologies/#{path}"), [], '/tmp'
b5ad6dfea4cc3e7d1d322ac99f1e5a31096837c4Mark Andrews end
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
6a550cb83cc2196f8af0592a258f75985cdcb5ebJeremy Reed should 'have created output file' do
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington assert File.exists? @xml_path
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington end
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington should 'have generated importable output' do
6ed53e5949d9fcd9715b440015b56e5a896d63dfDavid Hankins assert_nothing_raised do
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington ontology = FactoryGirl.create :ontology
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington user = FactoryGirl.create :user
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington ontology.import_xml_from_file @xml_path, user
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington `git checkout #{@xml_path} 2>/dev/null`
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington end
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington end
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington teardown do
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein File.delete @xml_path
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein end
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein end
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein end
4b3f3cc67135e676a9b3b688685fb59e3494b0e6Mark Andrews
c1a883f2e04d94e99c433b1f6cfd0c0338f4ed85Mark Andrews context 'with url-catalog' do
3398334b3acda24b086957286288ca9852662b12Automatic Updater setup do
39844d471080b2de4f8bb9d81f7e136ef80f0ae2Automatic Updater @xml_path = Hets.parse \
0e27506ce3135f9bd49e12564ad0e15256135118Automatic Updater Rails.root.join("test/fixtures/ontologies/clif/monoid.clif"),
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein ["http://colore.oor.net=http://develop.ontohub.org/colore/ontologies"],
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein '/tmp'
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein end
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein should 'have created output file' do
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein assert File.exists? @xml_path
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein end
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark Andrews
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein should 'have generated importable output' do
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein assert_nothing_raised do
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein ontology = FactoryGirl.create :ontology
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington user = FactoryGirl.create :user
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington ontology.import_xml_from_file @xml_path, user
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington `git checkout #{@xml_path} 2>/dev/null`
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington end
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington end
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington
eff7f78bc65f30efd87a398e66084ddab72799d3Mark Andrews teardown do
8b78c993cb475cc94e88560941b28c37684789d9Francis Dupont File.delete @xml_path
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington end
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington end
b0c15bd9792112fb47f6d956e580e4369e92f4e7Mark Andrews
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington should 'raise exception if provided with wrong file-format' do
553ead32ff5b00284e574dcabc39115d4d74ec66Evan Hunt assert_raise Hets::HetsError do
b0c15bd9792112fb47f6d956e580e4369e92f4e7Mark Andrews Hets.parse Rails.root.join('test/fixtures/ontologies/xml/valid.xml')
50105afc551903541608b11851d73278b23579a3Mark Andrews end
0b062f4990db5cc6db2fe3398926f71b92a67407Brian Wellington end
e174044290953a2499f574e35cc9c22ba126a303Mark Andrewsend
6e8a8077faf96d8da0b6cf738913f5f1f86e4008Mark Andrews