talia_core 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +41 -0
- data/bin/talia +33 -0
- data/lib/JXslt/jxslt.rb +60 -0
- data/lib/acts_as_roled.rb +11 -0
- data/lib/core_ext/platform.rb +9 -0
- data/lib/core_ext/string.rb +6 -0
- data/lib/core_ext.rb +1 -0
- data/lib/custom_template.rb +4 -0
- data/lib/loader_helper.rb +62 -0
- data/lib/mysql.rb +1214 -0
- data/lib/progressbar.rb +236 -0
- data/lib/role.rb +12 -0
- data/lib/talia_cl/command_line.rb +39 -0
- data/lib/talia_cl/commands/standalone/cl_options.rb +9 -0
- data/lib/talia_cl/commands/standalone/standalone_generate.rb +75 -0
- data/lib/talia_cl/commands/standalone.rb +25 -0
- data/lib/talia_cl/commands/talia_console/cl_options.rb +55 -0
- data/lib/talia_cl/commands/talia_console/console_commands.rb +37 -0
- data/lib/talia_cl/commands/talia_console/talia_commands.rb +131 -0
- data/lib/talia_cl/commands/talia_console.rb +47 -0
- data/lib/talia_cl/core_commands.rb +11 -0
- data/lib/talia_cl.rb +47 -0
- data/lib/talia_core/active_source.rb +372 -0
- data/lib/talia_core/active_source_parts/class_methods.rb +378 -0
- data/lib/talia_core/active_source_parts/predicate_handler.rb +89 -0
- data/lib/talia_core/active_source_parts/rdf.rb +131 -0
- data/lib/talia_core/active_source_parts/sql_helper.rb +36 -0
- data/lib/talia_core/active_source_parts/xml/base_builder.rb +47 -0
- data/lib/talia_core/active_source_parts/xml/generic_reader.rb +363 -0
- data/lib/talia_core/active_source_parts/xml/rdf_builder.rb +88 -0
- data/lib/talia_core/active_source_parts/xml/source_builder.rb +73 -0
- data/lib/talia_core/active_source_parts/xml/source_reader.rb +20 -0
- data/lib/talia_core/agent.rb +14 -0
- data/lib/talia_core/background_jobs/job.rb +82 -0
- data/lib/talia_core/background_jobs/progress_job.rb +68 -0
- data/lib/talia_core/collection.rb +13 -0
- data/lib/talia_core/data_types/data_loader.rb +92 -0
- data/lib/talia_core/data_types/data_record.rb +105 -0
- data/lib/talia_core/data_types/delayed_copier.rb +76 -0
- data/lib/talia_core/data_types/file_record.rb +59 -0
- data/lib/talia_core/data_types/file_store.rb +306 -0
- data/lib/talia_core/data_types/iip_data.rb +153 -0
- data/lib/talia_core/data_types/iip_loader.rb +127 -0
- data/lib/talia_core/data_types/image_data.rb +32 -0
- data/lib/talia_core/data_types/media_link.rb +19 -0
- data/lib/talia_core/data_types/mime_mapping.rb +45 -0
- data/lib/talia_core/data_types/path_helpers.rb +77 -0
- data/lib/talia_core/data_types/pdf_data.rb +42 -0
- data/lib/talia_core/data_types/simple_text.rb +36 -0
- data/lib/talia_core/data_types/temp_file_handling.rb +85 -0
- data/lib/talia_core/data_types/xml_data.rb +169 -0
- data/lib/talia_core/dc_resource.rb +20 -0
- data/lib/talia_core/dummy_handler.rb +34 -0
- data/lib/talia_core/dummy_source.rb +20 -0
- data/lib/talia_core/errors.rb +25 -0
- data/lib/talia_core/initializer.rb +427 -0
- data/lib/talia_core/ordered_source.rb +228 -0
- data/lib/talia_core/rails_ext/actionpack/action_controller/record_identifier.rb +13 -0
- data/lib/talia_core/rails_ext/actionpack/action_controller.rb +1 -0
- data/lib/talia_core/rails_ext/actionpack.rb +1 -0
- data/lib/talia_core/rails_ext.rb +1 -0
- data/lib/talia_core/rdf_import.rb +90 -0
- data/lib/talia_core/rdf_resource.rb +159 -0
- data/lib/talia_core/semantic_collection_item.rb +93 -0
- data/lib/talia_core/semantic_collection_wrapper.rb +324 -0
- data/lib/talia_core/semantic_property.rb +7 -0
- data/lib/talia_core/semantic_relation.rb +67 -0
- data/lib/talia_core/source.rb +323 -0
- data/lib/talia_core/source_transfer_object.rb +38 -0
- data/lib/talia_core/workflow/base.rb +15 -0
- data/lib/talia_core/workflow/publication_workflow.rb +62 -0
- data/lib/talia_core/workflow.rb +300 -0
- data/lib/talia_core.rb +9 -0
- data/lib/talia_dependencies.rb +12 -0
- data/lib/talia_util/bar_progressor.rb +15 -0
- data/lib/talia_util/configuration/config_file.rb +48 -0
- data/lib/talia_util/configuration/database_config.rb +40 -0
- data/lib/talia_util/configuration/mysql_database_setup.rb +104 -0
- data/lib/talia_util/data_import.rb +91 -0
- data/lib/talia_util/image_conversions.rb +82 -0
- data/lib/talia_util/import_job_helper.rb +132 -0
- data/lib/talia_util/io_helper.rb +54 -0
- data/lib/talia_util/progressable.rb +38 -0
- data/lib/talia_util/progressbar.rb +236 -0
- data/lib/talia_util/rdf_update.rb +80 -0
- data/lib/talia_util/some_sigla.xml +1960 -0
- data/lib/talia_util/test_helpers.rb +151 -0
- data/lib/talia_util/util.rb +226 -0
- data/lib/talia_util/yaml_import.rb +80 -0
- data/lib/talia_util.rb +13 -0
- data/lib/user.rb +116 -0
- data/lib/version.rb +15 -0
- data/test/core_ext/string_test.rb +11 -0
- data/test/custom_template_test.rb +8 -0
- data/test/talia_core/active_source_predicate_test.rb +54 -0
- data/test/talia_core/active_source_rdf_test.rb +89 -0
- data/test/talia_core/active_source_test.rb +631 -0
- data/test/talia_core/data_types/data_loader_test.rb +123 -0
- data/test/talia_core/data_types/data_record_test.rb +40 -0
- data/test/talia_core/data_types/file_record_test.rb +171 -0
- data/test/talia_core/data_types/iip_data_test.rb +130 -0
- data/test/talia_core/data_types/image_data_test.rb +88 -0
- data/test/talia_core/data_types/pdf_data_test.rb +68 -0
- data/test/talia_core/data_types/xml_data_test.rb +134 -0
- data/test/talia_core/generic_xml_test.rb +83 -0
- data/test/talia_core/initializer_test.rb +36 -0
- data/test/talia_core/ordered_source_test.rb +398 -0
- data/test/talia_core/rdf_resource_test.rb +115 -0
- data/test/talia_core/semantic_collection_item_test.rb +129 -0
- data/test/talia_core/source_reader_test.rb +33 -0
- data/test/talia_core/source_test.rb +484 -0
- data/test/talia_core/source_transfer_object_test.rb +24 -0
- data/test/talia_core/workflow/publication_workflow_test.rb +242 -0
- data/test/talia_core/workflow/user_class_for_workflow.rb +35 -0
- data/test/talia_core/workflow/workflow_base_test.rb +21 -0
- data/test/talia_core/workflow_test.rb +19 -0
- data/test/talia_util/import_job_helper_test.rb +46 -0
- data/test/test_helper.rb +68 -0
- metadata +262 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
|
|
3
|
+
# Load the helper class
|
|
4
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'test_helper')
|
|
5
|
+
|
|
6
|
+
module TaliaCore
|
|
7
|
+
|
|
8
|
+
# Test the DataRecord storage class
|
|
9
|
+
class XmlDataTest < Test::Unit::TestCase
|
|
10
|
+
|
|
11
|
+
fixtures :active_sources, :data_records
|
|
12
|
+
|
|
13
|
+
def setup
|
|
14
|
+
# Sets the file that is used by one test
|
|
15
|
+
setup_once(:tmp_file) { File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'data_for_test', 'XmlData', 'temp0.xhtml')) }
|
|
16
|
+
setup_once(:flush) do
|
|
17
|
+
# If the temp file already exists, it must be deleted
|
|
18
|
+
File.delete(@tmp_file) if(File.exist?(@tmp_file))
|
|
19
|
+
true
|
|
20
|
+
end
|
|
21
|
+
@test_records = DataTypes::DataRecord.find_data_records(Fixtures.identify(:something))
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# test not nil and records numbers
|
|
25
|
+
def test_records_numbers
|
|
26
|
+
assert_not_equal [], @test_records
|
|
27
|
+
assert_equal 15, @test_records.size
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# test class type and mime_type and subtype
|
|
31
|
+
def test_mime_types
|
|
32
|
+
assert_kind_of(DataTypes::XmlData, @test_records[2])
|
|
33
|
+
assert_kind_of(DataTypes::XmlData, @test_records[3])
|
|
34
|
+
assert_kind_of(DataTypes::XmlData, @test_records[4])
|
|
35
|
+
assert_kind_of(DataTypes::XmlData, @test_records[5])
|
|
36
|
+
assert_kind_of(DataTypes::XmlData, @test_records[6])
|
|
37
|
+
assert_equal("text/xml", @test_records[2].mime_type)
|
|
38
|
+
assert_equal("xml", @test_records[2].mime_subtype)
|
|
39
|
+
assert_equal("text/html", @test_records[3].mime_type)
|
|
40
|
+
assert_equal("html", @test_records[3].mime_subtype)
|
|
41
|
+
assert_equal("text/hnml", @test_records[4].mime_type)
|
|
42
|
+
assert_equal("hnml", @test_records[4].mime_subtype)
|
|
43
|
+
assert_equal("text/html", @test_records[5].mime_type)
|
|
44
|
+
assert_equal("html", @test_records[5].mime_subtype)
|
|
45
|
+
assert_equal("text/html", @test_records[6].mime_type)
|
|
46
|
+
assert_equal("html", @test_records[6].mime_subtype)
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
# test data directory
|
|
50
|
+
def test_data_directory
|
|
51
|
+
dir_for_test = File.expand_path(@test_records[2].data_directory)
|
|
52
|
+
assert_equal(base_dir_name(@test_records[2].id), dir_for_test)
|
|
53
|
+
assert(File.exists?(dir_for_test))
|
|
54
|
+
assert_equal(File.join(base_dir_name(@test_records[2].id), 'temp1.xml'), File.join(dir_for_test, @test_records[2].location))
|
|
55
|
+
assert( File.exists?(File.join(dir_for_test, @test_records[2].id.to_s)), "#{File.join(dir_for_test, @test_records[2].id.to_s)} does not exist" )
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# test file size
|
|
59
|
+
def test_file_size
|
|
60
|
+
assert_equal(300, @test_records[2].size)
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# test binary access
|
|
64
|
+
def test_binary_access
|
|
65
|
+
# Check initial position
|
|
66
|
+
assert_equal(0, @test_records[2].position)
|
|
67
|
+
|
|
68
|
+
# Try to read all bytes
|
|
69
|
+
bytes = @test_records[2].all_bytes
|
|
70
|
+
assert_equal(300, bytes.size)
|
|
71
|
+
assert_equal(false, @test_records[2].is_file_open?)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
# Re-check position (it should be 0)
|
|
75
|
+
assert_equal(0, @test_records[2].position)
|
|
76
|
+
|
|
77
|
+
# Read only one bytes and check position
|
|
78
|
+
byte = @test_records[2].get_byte
|
|
79
|
+
# check byte by code (60 == '<')
|
|
80
|
+
assert_equal(60, byte)
|
|
81
|
+
# Re-check position (it should be 1)
|
|
82
|
+
assert_equal(1, @test_records[2].position)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
# test for specific classes methods
|
|
86
|
+
def test_specific_classes_methods
|
|
87
|
+
# test content value
|
|
88
|
+
xml_content = @test_records[2].get_content
|
|
89
|
+
xhtml_content = @test_records[3].get_content
|
|
90
|
+
hnml_content = @test_records[4].get_content
|
|
91
|
+
|
|
92
|
+
assert_kind_of REXML::Elements, xml_content
|
|
93
|
+
assert_not_equal nil, xml_content.nil?
|
|
94
|
+
|
|
95
|
+
assert_kind_of REXML::Elements, xhtml_content
|
|
96
|
+
assert_not_equal nil, xhtml_content.nil?
|
|
97
|
+
|
|
98
|
+
assert_kind_of REXML::Elements, hnml_content
|
|
99
|
+
assert_not_equal nil, hnml_content.nil?
|
|
100
|
+
|
|
101
|
+
# test Tidy parsing
|
|
102
|
+
new_record = DataTypes::XmlData.new
|
|
103
|
+
new_record.source_id = TaliaCore::Source.find(:first).id
|
|
104
|
+
new_record.create_from_data('test_file.xhtml', @test_records[5].all_text, {:tidy => true})
|
|
105
|
+
new_record.save!
|
|
106
|
+
# read data from file
|
|
107
|
+
string_tidy = new_record.all_text
|
|
108
|
+
# if tidy is enabled, check tidy output
|
|
109
|
+
if !ENV['TIDYLIB'].nil?
|
|
110
|
+
assert_equal string_tidy, @test_records[6].all_text
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def test_attach
|
|
115
|
+
test_uri = 'http://testy.com/xml_attach'
|
|
116
|
+
src = Source.new(test_uri)
|
|
117
|
+
data_record = DataTypes::XmlData.new do |dr|
|
|
118
|
+
dr.location = 'my_file.xml'
|
|
119
|
+
end
|
|
120
|
+
src.data_records << data_record
|
|
121
|
+
src.save!
|
|
122
|
+
rel = Source.find(src.id)
|
|
123
|
+
assert_equal(1, rel.data_records.size)
|
|
124
|
+
assert_kind_of(DataTypes::XmlData, rel.data_records[0])
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
private
|
|
128
|
+
def base_dir_name(id=nil)
|
|
129
|
+
@data_path_test ||= File.expand_path(File.join(File.dirname(__FILE__), '..', '..', 'data_for_test', 'XmlData', ("00" + id.to_s)[-3..-1]))
|
|
130
|
+
end
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
end
|
|
134
|
+
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', 'test_helper')
|
|
2
|
+
|
|
3
|
+
module TaliaCore
|
|
4
|
+
|
|
5
|
+
class GenericImporterTest < ActiveSourceParts::Xml::GenericReader
|
|
6
|
+
element :test_a do
|
|
7
|
+
add :type, TaliaCore::ActiveSource
|
|
8
|
+
add :uri, from_attribute(:url)
|
|
9
|
+
add N::TALIA.some_value, from_element(:valuator)
|
|
10
|
+
add_rel N::TALIA.some_reference, from_element(:refigator)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
plain_element :dummything do
|
|
14
|
+
add_source :test_b do
|
|
15
|
+
add :uri, from_element(:url)
|
|
16
|
+
add :type, from_attribute(:type)
|
|
17
|
+
add_part :test_a
|
|
18
|
+
add_part :test_c do
|
|
19
|
+
add :uri, from_attribute(:url)
|
|
20
|
+
add :type, TaliaCore::ActiveSource
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Test the Generic Xml Import
|
|
28
|
+
class GenericXmlTest < Test::Unit::TestCase
|
|
29
|
+
|
|
30
|
+
def setup
|
|
31
|
+
setup_once(:flush) do
|
|
32
|
+
TaliaUtil::Util.flush_rdf
|
|
33
|
+
true
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
setup_once(:test_xml) do
|
|
37
|
+
File.open(TestHelper.fixture_file('generic_test.xml')) { |io| io.read }
|
|
38
|
+
end
|
|
39
|
+
setup_once(:imported) do
|
|
40
|
+
import = GenericImporterTest.sources_from(@test_xml)
|
|
41
|
+
import
|
|
42
|
+
end
|
|
43
|
+
setup_once(:sources) do
|
|
44
|
+
sources = {}
|
|
45
|
+
@imported.each do |el|
|
|
46
|
+
assert(el['uri'])
|
|
47
|
+
sources[el['uri']] = el
|
|
48
|
+
end
|
|
49
|
+
sources
|
|
50
|
+
end
|
|
51
|
+
# setup_once(:source_objects) do
|
|
52
|
+
# ActiveSource.create_from_xml(@test_xml, "TaliaCore::GenericImporterTest")
|
|
53
|
+
# end
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_import_success
|
|
57
|
+
assert(@imported)
|
|
58
|
+
assert_equal(@imported.size, @sources.size)
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def test_uris
|
|
62
|
+
expected = ['http://fooobar.com', 'http://www.otherfoo.com/', 'http://first_sub/X', 'http://first_sub/Y']
|
|
63
|
+
assert_equal(expected.sort, @sources.keys.sort)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_simple_reference
|
|
67
|
+
assert_equal(['<http://www.refthing.com/>'], @sources['http://fooobar.com'][N::TALIA.some_reference.to_s] )
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def test_type
|
|
71
|
+
assert_equal('TaliaCore::Source', @sources['http://www.otherfoo.com/']['type'])
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
def test_part
|
|
75
|
+
assert_equal(['<http://www.otherfoo.com/>'], @sources['http://first_sub/Y'][N::TALIA.part_of.to_s])
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
# def test_create
|
|
79
|
+
# assert(@source_objects)
|
|
80
|
+
# end
|
|
81
|
+
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require 'test/unit'
|
|
2
|
+
|
|
3
|
+
# Load the helper class
|
|
4
|
+
require File.join(File.dirname(__FILE__), '..', 'test_helper')
|
|
5
|
+
|
|
6
|
+
module TaliaCore
|
|
7
|
+
|
|
8
|
+
# Just test if the initializer has works correctly. These tests will fail if you
|
|
9
|
+
# don't use the configuration file supplied with Talia
|
|
10
|
+
class InitializerTest < Test::Unit::TestCase
|
|
11
|
+
|
|
12
|
+
fixtures :active_sources
|
|
13
|
+
|
|
14
|
+
# Test it
|
|
15
|
+
def test_initialized
|
|
16
|
+
assert(TaliaCore::Initializer.initialized)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Test namespaces
|
|
20
|
+
def test_namespaces
|
|
21
|
+
assert(N::LOCAL.to_s, "http://localnode.org/")
|
|
22
|
+
assert_equal(N::DEFAULT.to_s, "http://default.talia.eu/")
|
|
23
|
+
assert_equal(N::FOO.to_s, "http://foo.com/")
|
|
24
|
+
assert_kind_of(N::Namespace, N::FOO)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Test the datase connection
|
|
28
|
+
def test_db_connection
|
|
29
|
+
assert(Source.exists?(N::LOCAL.something))
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def test_core_ext_loading
|
|
33
|
+
assert 'string'.respond_to?(:to_permalink)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
@@ -0,0 +1,398 @@
|
|
|
1
|
+
# Load the helper class
|
|
2
|
+
require File.join(File.dirname(__FILE__), '..', 'test_helper')
|
|
3
|
+
|
|
4
|
+
module TaliaCore
|
|
5
|
+
|
|
6
|
+
# Test the ActiveSource
|
|
7
|
+
class OrderedSourceTest < Test::Unit::TestCase
|
|
8
|
+
|
|
9
|
+
# fixtures :active_sources, :semantic_properties, :semantic_relations
|
|
10
|
+
|
|
11
|
+
def setup
|
|
12
|
+
setup_once(:flush) do
|
|
13
|
+
TaliaUtil::Util.flush_db
|
|
14
|
+
TaliaUtil::Util.flush_rdf
|
|
15
|
+
true
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_resource_type
|
|
20
|
+
ordered_source = OrderedSource.new('http://testvalue.org/ordered_set/type')
|
|
21
|
+
# check class
|
|
22
|
+
assert_kind_of OrderedSource, ordered_source
|
|
23
|
+
# check type
|
|
24
|
+
# assert_equal 'http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq', ordered_source.types.to_s
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def test_elements
|
|
28
|
+
# create new OrderedSource
|
|
29
|
+
ordered_source = OrderedSource.new('http://testvalue.org/ordered_set/elenments')
|
|
30
|
+
ordered_source.save!
|
|
31
|
+
|
|
32
|
+
# create 3 items
|
|
33
|
+
item_1 = ActiveSource.new('http://testvalue.org/item_1')
|
|
34
|
+
item_2 = ActiveSource.new('http://testvalue.org/item_2')
|
|
35
|
+
item_3 = ActiveSource.new('http://testvalue.org/item_3')
|
|
36
|
+
|
|
37
|
+
# add items to OrderedSource
|
|
38
|
+
ordered_source[(RDF::_000001).uri].add_with_order(item_1, 1)
|
|
39
|
+
ordered_source[(RDF::_000002).uri].add_with_order(item_2, 2)
|
|
40
|
+
ordered_source[(RDF::_000003).uri].add_with_order(item_3, 3)
|
|
41
|
+
ordered_source.save!
|
|
42
|
+
|
|
43
|
+
# check if all items are inserted
|
|
44
|
+
assert_equal 3, ordered_source.elements.size
|
|
45
|
+
assert_equal item_1.uri, ordered_source.elements[0].uri
|
|
46
|
+
assert_equal item_2.uri, ordered_source.elements[1].uri
|
|
47
|
+
assert_equal item_3.uri, ordered_source.elements[2].uri
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_add
|
|
51
|
+
# create new OrderedSource
|
|
52
|
+
ordered_source = OrderedSource.new('http://testvalue.org/ordered_set')
|
|
53
|
+
ordered_source.save!
|
|
54
|
+
assert ordered_source.elements.empty?
|
|
55
|
+
|
|
56
|
+
# create 3 items
|
|
57
|
+
item_1 = ActiveSource.new('http://testvalue.org/item_1')
|
|
58
|
+
item_2 = ActiveSource.new('http://testvalue.org/item_2')
|
|
59
|
+
|
|
60
|
+
# add item to ordered source
|
|
61
|
+
ordered_source.add item_1
|
|
62
|
+
ordered_source.save!
|
|
63
|
+
|
|
64
|
+
# check if all items are inserted
|
|
65
|
+
assert_equal 1, ordered_source.elements.size
|
|
66
|
+
assert_equal item_1.uri, ordered_source.elements[0].uri
|
|
67
|
+
|
|
68
|
+
ordered_source.add item_2
|
|
69
|
+
ordered_source.save!
|
|
70
|
+
|
|
71
|
+
# check if all items are inserted
|
|
72
|
+
assert_equal 2, ordered_source.elements.size
|
|
73
|
+
assert_equal item_1.uri, ordered_source.elements[0].uri
|
|
74
|
+
assert_equal item_2.uri, ordered_source.elements[1].uri
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
def test_remove
|
|
78
|
+
# create new OrderedSource
|
|
79
|
+
ordered_source = OrderedSource.new('http://testvalue.org/ordered_set_remove')
|
|
80
|
+
ordered_source.save!
|
|
81
|
+
assert ordered_source.elements.empty?
|
|
82
|
+
|
|
83
|
+
# create 3 items
|
|
84
|
+
item_1 = ActiveSource.new('http://testvalue.org/item_1')
|
|
85
|
+
item_2 = ActiveSource.new('http://testvalue.org/item_2')
|
|
86
|
+
|
|
87
|
+
# add items to ordered source
|
|
88
|
+
ordered_source.add item_1
|
|
89
|
+
ordered_source.add item_2
|
|
90
|
+
|
|
91
|
+
# check if all items are inserted
|
|
92
|
+
assert_equal 2, ordered_source.elements.size
|
|
93
|
+
assert_equal item_1.uri, ordered_source.elements[0].uri
|
|
94
|
+
assert_equal item_2.uri, ordered_source.elements[1].uri
|
|
95
|
+
|
|
96
|
+
# test delete item 1
|
|
97
|
+
ordered_source.delete 1
|
|
98
|
+
|
|
99
|
+
# check if item1 is been deleted
|
|
100
|
+
assert_equal 1, ordered_source.elements.size
|
|
101
|
+
assert_equal item_2.uri, ordered_source.elements[0].uri
|
|
102
|
+
|
|
103
|
+
# test delete item 1
|
|
104
|
+
ordered_source.delete 1
|
|
105
|
+
ordered_source.save!
|
|
106
|
+
|
|
107
|
+
# check if item1 is been deleted
|
|
108
|
+
assert_equal 0, ordered_source.elements.size
|
|
109
|
+
|
|
110
|
+
# add items to ordered source
|
|
111
|
+
ordered_source.add item_1
|
|
112
|
+
ordered_source.add item_2
|
|
113
|
+
|
|
114
|
+
# delete all item
|
|
115
|
+
ordered_source.delete_all
|
|
116
|
+
|
|
117
|
+
# check if all items are been deleted
|
|
118
|
+
assert_equal 0, ordered_source.elements.size
|
|
119
|
+
assert ordered_source.elements.empty?
|
|
120
|
+
end
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
def test_replace
|
|
124
|
+
# create new OrderedSource
|
|
125
|
+
ordered_source = OrderedSource.new('http://testvalue.org/ordered_set/replace')
|
|
126
|
+
ordered_source.save!
|
|
127
|
+
assert ordered_source.elements.empty?
|
|
128
|
+
|
|
129
|
+
# create 3 items
|
|
130
|
+
item_1 = ActiveSource.new('http://testvalue.org/item_1')
|
|
131
|
+
item_2 = ActiveSource.new('http://testvalue.org/item_2')
|
|
132
|
+
item_3 = ActiveSource.new('http://testvalue.org/item_3')
|
|
133
|
+
|
|
134
|
+
# add items to ordered source
|
|
135
|
+
ordered_source.add item_1
|
|
136
|
+
ordered_source.add item_2
|
|
137
|
+
|
|
138
|
+
# check if all items are inserted
|
|
139
|
+
assert_equal 2, ordered_source.elements.size
|
|
140
|
+
assert_equal item_1.uri, ordered_source.elements[0].uri
|
|
141
|
+
assert_equal item_2.uri, ordered_source.elements[1].uri
|
|
142
|
+
|
|
143
|
+
# test delete item 1
|
|
144
|
+
ordered_source.replace 1,item_3
|
|
145
|
+
|
|
146
|
+
# check if item1 is been replaced
|
|
147
|
+
assert_equal 2, ordered_source.elements.size
|
|
148
|
+
assert_not_equal item_1.uri, ordered_source.elements[0].uri
|
|
149
|
+
assert_equal item_3.uri, ordered_source.elements[0].uri
|
|
150
|
+
assert_equal item_2.uri, ordered_source.elements[1].uri
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
def test_size
|
|
154
|
+
# create new OrderedSource
|
|
155
|
+
ordered_source = OrderedSource.new('http://testvalue.org/ordered_set/size')
|
|
156
|
+
ordered_source.save!
|
|
157
|
+
assert ordered_source.elements.empty?
|
|
158
|
+
|
|
159
|
+
# the size must be 0
|
|
160
|
+
assert_equal 0, ordered_source.size
|
|
161
|
+
|
|
162
|
+
# create 3 items
|
|
163
|
+
item_1 = ActiveSource.new('http://testvalue.org/item_1')
|
|
164
|
+
item_2 = ActiveSource.new('http://testvalue.org/item_2')
|
|
165
|
+
item_3 = ActiveSource.new('http://testvalue.org/item_3')
|
|
166
|
+
|
|
167
|
+
# add items to OrderedSource
|
|
168
|
+
ordered_source.insert_at(101, item_1)
|
|
169
|
+
ordered_source.insert_at(103, item_3)
|
|
170
|
+
ordered_source.insert_at(102, item_2)
|
|
171
|
+
|
|
172
|
+
# the size must be 104 (counting the 0-element
|
|
173
|
+
assert_equal 104, ordered_source.size
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
def test_at
|
|
177
|
+
# create new OrderedSource
|
|
178
|
+
ordered_source = OrderedSource.new('http://testvalue.org/ordered_set/at')
|
|
179
|
+
ordered_source.save!
|
|
180
|
+
assert ordered_source.elements.empty?
|
|
181
|
+
|
|
182
|
+
# the size must be 0
|
|
183
|
+
assert_equal 0, ordered_source.size
|
|
184
|
+
|
|
185
|
+
# create 3 items
|
|
186
|
+
item_1 = ActiveSource.new('http://testvalue.org/item_1')
|
|
187
|
+
item_2 = ActiveSource.new('http://testvalue.org/item_2')
|
|
188
|
+
item_3 = ActiveSource.new('http://testvalue.org/item_3')
|
|
189
|
+
|
|
190
|
+
# add items to OrderedSource
|
|
191
|
+
ordered_source.add item_1
|
|
192
|
+
ordered_source.add item_2
|
|
193
|
+
ordered_source.add item_3
|
|
194
|
+
|
|
195
|
+
# check at method
|
|
196
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(1)
|
|
197
|
+
assert_equal item_1.uri, ordered_source.at(1).uri
|
|
198
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(2)
|
|
199
|
+
assert_equal item_2.uri, ordered_source.at(2).uri
|
|
200
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(3)
|
|
201
|
+
assert_equal item_3.uri, ordered_source.at(3).uri
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
def test_add_more_then_10_items
|
|
205
|
+
# create new OrderedSource
|
|
206
|
+
ordered_source = OrderedSource.new('http://testvalue.org/ordered_set/tenit')
|
|
207
|
+
ordered_source.save!
|
|
208
|
+
assert_equal 0, ordered_source.elements.size, "#{ordered_source.elements.collect { |el| el.uri }}"
|
|
209
|
+
|
|
210
|
+
# the size must be 0
|
|
211
|
+
assert_equal 0, ordered_source.size
|
|
212
|
+
|
|
213
|
+
# create 3 items
|
|
214
|
+
item_1 = ActiveSource.new('http://testvalue.org/item_1')
|
|
215
|
+
item_2 = ActiveSource.new('http://testvalue.org/item_2')
|
|
216
|
+
item_3 = ActiveSource.new('http://testvalue.org/item_3')
|
|
217
|
+
item_4 = ActiveSource.new('http://testvalue.org/item_4')
|
|
218
|
+
item_5 = ActiveSource.new('http://testvalue.org/item_5')
|
|
219
|
+
item_6 = ActiveSource.new('http://testvalue.org/item_6')
|
|
220
|
+
item_7 = ActiveSource.new('http://testvalue.org/item_7')
|
|
221
|
+
item_8 = ActiveSource.new('http://testvalue.org/item_8')
|
|
222
|
+
item_9 = ActiveSource.new('http://testvalue.org/item_9')
|
|
223
|
+
item_10 = ActiveSource.new('http://testvalue.org/item_10')
|
|
224
|
+
item_11 = ActiveSource.new('http://testvalue.org/item_11')
|
|
225
|
+
item_12 = ActiveSource.new('http://testvalue.org/item_12')
|
|
226
|
+
|
|
227
|
+
# add items to OrderedSource
|
|
228
|
+
ordered_source.add item_1
|
|
229
|
+
ordered_source.add item_2
|
|
230
|
+
ordered_source.add item_3
|
|
231
|
+
ordered_source.add item_4
|
|
232
|
+
ordered_source.add item_5
|
|
233
|
+
ordered_source.add item_6
|
|
234
|
+
ordered_source.add item_7
|
|
235
|
+
ordered_source.add item_8
|
|
236
|
+
ordered_source.add item_9
|
|
237
|
+
ordered_source.add item_10
|
|
238
|
+
ordered_source.add item_11
|
|
239
|
+
ordered_source.add item_12
|
|
240
|
+
|
|
241
|
+
# check at method
|
|
242
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(1)
|
|
243
|
+
assert_equal item_1.uri, ordered_source.at(1).uri
|
|
244
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(2)
|
|
245
|
+
assert_equal item_2.uri, ordered_source.at(2).uri
|
|
246
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(3)
|
|
247
|
+
assert_equal item_3.uri, ordered_source.at(3).uri
|
|
248
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(4)
|
|
249
|
+
assert_equal item_4.uri, ordered_source.at(4).uri
|
|
250
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(5)
|
|
251
|
+
assert_equal item_5.uri, ordered_source.at(5).uri
|
|
252
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(6)
|
|
253
|
+
assert_equal item_6.uri, ordered_source.at(6).uri
|
|
254
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(7)
|
|
255
|
+
assert_equal item_7.uri, ordered_source.at(7).uri
|
|
256
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(8)
|
|
257
|
+
assert_equal item_8.uri, ordered_source.at(8).uri
|
|
258
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(9)
|
|
259
|
+
assert_equal item_9.uri, ordered_source.at(9).uri
|
|
260
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(10)
|
|
261
|
+
assert_equal item_10.uri, ordered_source.at(10).uri
|
|
262
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(11)
|
|
263
|
+
assert_equal item_11.uri, ordered_source.at(11).uri
|
|
264
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(12)
|
|
265
|
+
assert_equal item_12.uri, ordered_source.at(12).uri
|
|
266
|
+
|
|
267
|
+
# test order
|
|
268
|
+
elements = ordered_source.elements.collect { |el| el.uri }
|
|
269
|
+
elements_array = []
|
|
270
|
+
elements_array << 'http://testvalue.org/item_1'
|
|
271
|
+
elements_array << 'http://testvalue.org/item_2'
|
|
272
|
+
elements_array << 'http://testvalue.org/item_3'
|
|
273
|
+
elements_array << 'http://testvalue.org/item_4'
|
|
274
|
+
elements_array << 'http://testvalue.org/item_5'
|
|
275
|
+
elements_array << 'http://testvalue.org/item_6'
|
|
276
|
+
elements_array << 'http://testvalue.org/item_7'
|
|
277
|
+
elements_array << 'http://testvalue.org/item_8'
|
|
278
|
+
elements_array << 'http://testvalue.org/item_9'
|
|
279
|
+
elements_array << 'http://testvalue.org/item_10'
|
|
280
|
+
elements_array << 'http://testvalue.org/item_11'
|
|
281
|
+
elements_array << 'http://testvalue.org/item_12'
|
|
282
|
+
assert_equal elements_array, elements
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
def test_next_and_previous
|
|
286
|
+
# create new OrderedSource
|
|
287
|
+
ordered_source = OrderedSource.new('http://testvalue.org/ordered_set/nextprev')
|
|
288
|
+
ordered_source.save!
|
|
289
|
+
assert ordered_source.elements.empty?
|
|
290
|
+
|
|
291
|
+
# the size must be 0
|
|
292
|
+
assert_equal 0, ordered_source.size
|
|
293
|
+
|
|
294
|
+
# create 3 items
|
|
295
|
+
item_1 = ActiveSource.new('http://testvalue.org/item_1')
|
|
296
|
+
item_2 = ActiveSource.new('http://testvalue.org/item_2')
|
|
297
|
+
item_3 = ActiveSource.new('http://testvalue.org/item_3')
|
|
298
|
+
|
|
299
|
+
# add items to OrderedSource
|
|
300
|
+
ordered_source.add item_1
|
|
301
|
+
ordered_source.add item_2
|
|
302
|
+
ordered_source.add item_3
|
|
303
|
+
|
|
304
|
+
# test next method
|
|
305
|
+
item = ordered_source.at(2)
|
|
306
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(2)
|
|
307
|
+
assert_equal item_2.uri, ordered_source.at(2).uri
|
|
308
|
+
assert_equal 2, ordered_source.current_index
|
|
309
|
+
|
|
310
|
+
@next = ordered_source.next
|
|
311
|
+
assert_kind_of TaliaCore::ActiveSource, @next
|
|
312
|
+
assert_equal item_3.uri, @next.uri
|
|
313
|
+
assert_equal 3, ordered_source.current_index
|
|
314
|
+
|
|
315
|
+
assert_raise(RuntimeError) {ordered_source.next}
|
|
316
|
+
assert_equal 3, ordered_source.current_index
|
|
317
|
+
|
|
318
|
+
# test previous method
|
|
319
|
+
item = ordered_source.at(2)
|
|
320
|
+
assert_kind_of TaliaCore::ActiveSource, ordered_source.at(2)
|
|
321
|
+
assert_equal item_2.uri, ordered_source.at(2).uri
|
|
322
|
+
assert_equal 2, ordered_source.current_index
|
|
323
|
+
|
|
324
|
+
@previous = ordered_source.previous
|
|
325
|
+
assert_kind_of TaliaCore::ActiveSource, @previous
|
|
326
|
+
assert_equal item_1.uri, @previous.uri
|
|
327
|
+
assert_equal 1, ordered_source.current_index
|
|
328
|
+
|
|
329
|
+
assert_raise(RuntimeError) {ordered_source.previous}
|
|
330
|
+
assert_equal 1, ordered_source.current_index
|
|
331
|
+
|
|
332
|
+
# test next with index
|
|
333
|
+
@next = ordered_source.next(2)
|
|
334
|
+
assert_kind_of TaliaCore::ActiveSource, @next
|
|
335
|
+
assert_equal item_3.uri, @next.uri
|
|
336
|
+
assert_equal 3, ordered_source.current_index
|
|
337
|
+
|
|
338
|
+
assert_raise(RuntimeError) {ordered_source.next(3)}
|
|
339
|
+
assert_equal 3, ordered_source.current_index
|
|
340
|
+
|
|
341
|
+
# test next with element
|
|
342
|
+
@next = ordered_source.next(item_2)
|
|
343
|
+
assert_kind_of TaliaCore::ActiveSource, @next
|
|
344
|
+
assert_equal item_3.uri, @next.uri
|
|
345
|
+
assert_equal 3, ordered_source.current_index
|
|
346
|
+
|
|
347
|
+
# test previous with index
|
|
348
|
+
@previous = ordered_source.previous(2)
|
|
349
|
+
assert_kind_of TaliaCore::ActiveSource, @previous
|
|
350
|
+
assert_equal item_1.uri, @previous.uri
|
|
351
|
+
assert_equal 1, ordered_source.current_index
|
|
352
|
+
|
|
353
|
+
assert_raise(RuntimeError) {ordered_source.previous(1)}
|
|
354
|
+
assert_equal 1, ordered_source.current_index
|
|
355
|
+
|
|
356
|
+
# test previous with element
|
|
357
|
+
@previous = ordered_source.previous(item_2)
|
|
358
|
+
assert_kind_of TaliaCore::ActiveSource, @previous
|
|
359
|
+
assert_equal item_1.uri, @previous.uri
|
|
360
|
+
assert_equal 1, ordered_source.current_index
|
|
361
|
+
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
def test_find_ordered_source
|
|
365
|
+
# create new OrderedSource
|
|
366
|
+
ordered_source = OrderedSource.new('http://testvalue.org/ordered_set/find')
|
|
367
|
+
ordered_source.save!
|
|
368
|
+
assert ordered_source.elements.empty?
|
|
369
|
+
|
|
370
|
+
# the size must be 0
|
|
371
|
+
assert_equal 0, ordered_source.size
|
|
372
|
+
|
|
373
|
+
# create 3 items
|
|
374
|
+
item_1 = ActiveSource.new('http://testvalue.org/item_1')
|
|
375
|
+
item_2 = ActiveSource.new('http://testvalue.org/item_2')
|
|
376
|
+
item_3 = ActiveSource.new('http://testvalue.org/item_3')
|
|
377
|
+
|
|
378
|
+
# add items to OrderedSource
|
|
379
|
+
ordered_source.add item_1
|
|
380
|
+
ordered_source.add item_2
|
|
381
|
+
ordered_source.add item_3
|
|
382
|
+
|
|
383
|
+
# test find method
|
|
384
|
+
assert_equal 2, ordered_source.find_position_by_object(item_2)
|
|
385
|
+
end
|
|
386
|
+
|
|
387
|
+
def test_save_reload
|
|
388
|
+
ordered = OrderedSource.new('http://orderedsource_save_and_load')
|
|
389
|
+
item_1 = ActiveSource.new('http://orderedsource_save_and_load/item')
|
|
390
|
+
ordered.insert_at(15, item_1)
|
|
391
|
+
assert_equal(item_1, ordered.at(15))
|
|
392
|
+
ordered.save!
|
|
393
|
+
reload = OrderedSource.find(ordered.id)
|
|
394
|
+
assert_equal(item_1, reload.at(15))
|
|
395
|
+
end
|
|
396
|
+
|
|
397
|
+
end
|
|
398
|
+
end
|