rets4r 0.8.5 → 1.1.18
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/.document +5 -0
- data/{test/client/data/1.5/metadata.xml → .gemtest} +0 -0
- data/CHANGELOG +611 -66
- data/CONTRIBUTORS +6 -2
- data/Gemfile +1 -0
- data/LICENSE +22 -0
- data/MANIFEST +63 -0
- data/NEWS +203 -0
- data/{README → README.rdoc} +11 -4
- data/RUBYS +7 -7
- data/Rakefile +48 -0
- data/TODO +5 -1
- data/examples/client_get_object.rb +31 -42
- data/examples/client_login.rb +20 -18
- data/examples/client_mapper.rb +17 -0
- data/examples/client_metadata.rb +28 -28
- data/examples/client_parser.rb +9 -0
- data/examples/client_search.rb +25 -27
- data/examples/settings.yml +114 -0
- data/lib/rets4r.rb +14 -1
- data/lib/rets4r/auth.rb +70 -66
- data/lib/rets4r/client.rb +470 -650
- data/lib/rets4r/client/data.rb +13 -13
- data/lib/rets4r/client/dataobject.rb +27 -19
- data/lib/rets4r/client/exceptions.rb +116 -0
- data/lib/rets4r/client/links.rb +32 -0
- data/lib/rets4r/client/metadata.rb +12 -12
- data/lib/rets4r/client/parsers/compact.rb +42 -0
- data/lib/rets4r/client/parsers/compact_nokogiri.rb +91 -0
- data/lib/rets4r/client/parsers/metadata.rb +92 -0
- data/lib/rets4r/client/parsers/response_parser.rb +100 -0
- data/lib/rets4r/client/requester.rb +143 -0
- data/lib/rets4r/client/transaction.rb +30 -33
- data/lib/rets4r/core_ext/array/extract_options.rb +15 -0
- data/lib/rets4r/core_ext/class/attribute_accessors.rb +58 -0
- data/lib/rets4r/core_ext/hash/keys.rb +46 -0
- data/lib/rets4r/core_ext/hash/slice.rb +39 -0
- data/lib/rets4r/listing_mapper.rb +17 -0
- data/lib/rets4r/listing_service.rb +35 -0
- data/lib/rets4r/loader.rb +8 -0
- data/lib/tasks/annotations.rake +121 -0
- data/lib/tasks/coverage.rake +13 -0
- data/rets4r.gemspec +24 -0
- data/spec/rets4r_compact_data_parser_spec.rb +7 -0
- data/test/data/1.5/bad_compact.xml +7 -0
- data/test/data/1.5/count_only_compact.xml +3 -0
- data/test/{client/data → data}/1.5/error.xml +0 -0
- data/test/{client/data → data}/1.5/invalid_compact.xml +0 -0
- data/test/{client/data → data}/1.5/login.xml +0 -0
- data/test/data/1.5/metadata.xml +0 -0
- data/test/{client/data → data}/1.5/search_compact.xml +0 -0
- data/test/data/1.5/search_compact_big.xml +136 -0
- data/test/{client/data → data}/1.5/search_unescaped_compact.xml +0 -0
- data/test/data/listing_service.yml +36 -0
- data/test/test_auth.rb +68 -0
- data/test/test_client.rb +342 -0
- data/test/test_client_links.rb +39 -0
- data/test/test_compact_nokogiri.rb +64 -0
- data/test/test_helper.rb +12 -0
- data/test/test_listing_mapper.rb +112 -0
- data/test/test_loader.rb +24 -0
- data/test/test_parser.rb +96 -0
- data/test/test_quality.rb +57 -0
- metadata +168 -53
- data/GPL +0 -340
- data/examples/metadata.xml +0 -42
- data/lib/rets4r/client/metadataindex.rb +0 -82
- data/lib/rets4r/client/parser.rb +0 -141
- data/lib/rets4r/client/parser/rexml.rb +0 -75
- data/lib/rets4r/client/parser/xmlparser.rb +0 -95
- data/test/client/parser/tc_rexml.rb +0 -17
- data/test/client/parser/tc_xmlparser.rb +0 -21
- data/test/client/tc_auth.rb +0 -68
- data/test/client/tc_client.rb +0 -320
- data/test/client/tc_metadataindex.rb +0 -36
- data/test/client/test_parser.rb +0 -128
- data/test/client/ts_all.rb +0 -8
- data/test/ts_all.rb +0 -1
- data/test/ts_client.rb +0 -1
@@ -1,36 +0,0 @@
|
|
1
|
-
$:.unshift File.join(File.dirname(__FILE__), "../..", "lib")
|
2
|
-
|
3
|
-
require 'rets4r/client/metadataindex'
|
4
|
-
require 'rets4r/client/transaction'
|
5
|
-
require 'rets4r/client/metadata'
|
6
|
-
require 'test/unit'
|
7
|
-
|
8
|
-
module RETS4R
|
9
|
-
class TestMetadataIndex < Test::Unit::TestCase
|
10
|
-
|
11
|
-
def test_truth
|
12
|
-
end
|
13
|
-
|
14
|
-
=begin
|
15
|
-
def setup
|
16
|
-
File.open('tests/rets/data/metadata.marshal') do |file|
|
17
|
-
@trans = Marshal.load(file)
|
18
|
-
end
|
19
|
-
|
20
|
-
@index = MetadataIndex.new(@trans.data)
|
21
|
-
end
|
22
|
-
|
23
|
-
# Ensure that our lookup and search functions, although different, will return the same data
|
24
|
-
# for the same criteria.
|
25
|
-
def test_lookup_search
|
26
|
-
assert_equal("Club House", @index.lookup('METADATA-LOOKUP_TYPE', 'Property', 'HOAMENITIS_Lkp_2')[0]['LongValue'])
|
27
|
-
|
28
|
-
puts @index.search('METADATA-LOOKUP_TYPE', {'Resource' => 'Property', 'Lookup' => 'HOAMENITIS_Lkp_2'}).inspect
|
29
|
-
assert_equal( \
|
30
|
-
@index.lookup('METADATA-LOOKUP_TYPE', 'Property', 'HOAMENITIS_Lkp_2'), \
|
31
|
-
@index.search('METADATA-LOOKUP_TYPE', {'Resource' => 'Property', 'Lookup' => 'HOAMENITIS_Lkp_2'}).inspect \
|
32
|
-
)
|
33
|
-
end
|
34
|
-
=end
|
35
|
-
end
|
36
|
-
end
|
data/test/client/test_parser.rb
DELETED
@@ -1,128 +0,0 @@
|
|
1
|
-
$:.unshift File.join(File.dirname(__FILE__), "../..", "lib")
|
2
|
-
|
3
|
-
module RETS4R
|
4
|
-
class Client
|
5
|
-
|
6
|
-
=begin
|
7
|
-
|
8
|
-
Provides a set of parser tests that can be extend for each specific parser type.
|
9
|
-
|
10
|
-
Usage:
|
11
|
-
|
12
|
-
module TestMyParser < Test::Unit::TestCase
|
13
|
-
include TestParser
|
14
|
-
|
15
|
-
def setup
|
16
|
-
@parser = MyParser.new
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
=end
|
21
|
-
|
22
|
-
module TestParser
|
23
|
-
DATA_DIR = 'test/client/data/1.5/'
|
24
|
-
|
25
|
-
def setup
|
26
|
-
# To be overridden. Must set @parser with a valid parser object
|
27
|
-
end
|
28
|
-
|
29
|
-
def load_xml_from_file(file_name)
|
30
|
-
xml = ''
|
31
|
-
|
32
|
-
File.open(file_name) do |file|
|
33
|
-
file.each do |line|
|
34
|
-
xml << line
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
xml
|
39
|
-
end
|
40
|
-
|
41
|
-
def parse_to_transaction(xml_file_name)
|
42
|
-
@parser.parse(load_xml_from_file(xml_file_name))
|
43
|
-
end
|
44
|
-
|
45
|
-
# Test Cases
|
46
|
-
|
47
|
-
def test_search_compact
|
48
|
-
transaction = parse_to_transaction("#{DATA_DIR}search_compact.xml")
|
49
|
-
|
50
|
-
assert_equal(true, transaction.success?)
|
51
|
-
assert_equal(nil, transaction.response)
|
52
|
-
assert_equal(false, transaction.header.empty?)
|
53
|
-
assert_equal(2, transaction.data.length)
|
54
|
-
assert_equal(transaction.header.length, transaction.data[0].length)
|
55
|
-
assert_equal(4, transaction.count)
|
56
|
-
assert_equal(9, transaction.delimiter)
|
57
|
-
assert_equal("\t", transaction.ascii_delimiter)
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_unescaped_search_compact
|
61
|
-
transaction = parse_to_transaction("#{DATA_DIR}search_unescaped_compact.xml")
|
62
|
-
|
63
|
-
# (We should be able to recover automatically from this)
|
64
|
-
assert_equal(true, transaction.success?)
|
65
|
-
assert_equal(nil, transaction.response)
|
66
|
-
assert_equal(false, transaction.header.empty?)
|
67
|
-
assert_equal(2, transaction.data.length)
|
68
|
-
assert_equal(transaction.header.length, transaction.data[0].length)
|
69
|
-
assert_equal(4, transaction.count)
|
70
|
-
end
|
71
|
-
|
72
|
-
def test_invalid_search_compact
|
73
|
-
assert_raise(ParserException) do
|
74
|
-
parse_to_transaction("#{DATA_DIR}invalid_compact.xml")
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def test_login_results
|
79
|
-
transaction = parse_to_transaction("#{DATA_DIR}login.xml")
|
80
|
-
|
81
|
-
assert_equal(true, transaction.success?)
|
82
|
-
assert_equal('srealtor,1,11,11111', transaction.response['User'])
|
83
|
-
assert_equal('/rets/Login', transaction.response['Login'])
|
84
|
-
end
|
85
|
-
|
86
|
-
=begin These were salvaged from the old parser test case.
|
87
|
-
|
88
|
-
def test_metadata_results
|
89
|
-
trans = parse_to_transaction("test/client/data/metadata-full.xml")
|
90
|
-
|
91
|
-
assert_equal(true, trans.success?)
|
92
|
-
assert_equal(605, trans.data.length)
|
93
|
-
|
94
|
-
#assert_equal('METADATA-SYSTEM', trans.data[0].type)
|
95
|
-
end
|
96
|
-
=end
|
97
|
-
|
98
|
-
def test_error_results
|
99
|
-
xml = load_xml_from_file("#{DATA_DIR}error.xml")
|
100
|
-
|
101
|
-
transaction = @parser.parse(xml)
|
102
|
-
|
103
|
-
assert_equal(false, transaction.success?)
|
104
|
-
assert_equal('20400', transaction.reply_code)
|
105
|
-
assert_equal('Invalid Invalidness.', transaction.reply_text)
|
106
|
-
end
|
107
|
-
|
108
|
-
def test_parse_compact_line
|
109
|
-
results = @parser.parse_compact_line(" 1 2 3 ")
|
110
|
-
|
111
|
-
assert_equal 3, results.size
|
112
|
-
assert_equal '1', results[0]
|
113
|
-
assert_equal '2', results[1]
|
114
|
-
assert_equal '3', results[2]
|
115
|
-
end
|
116
|
-
|
117
|
-
def test_parse_data_should_ignore_empty_header_fields
|
118
|
-
header = ["", "1", "2", "3"]
|
119
|
-
data = " 1 2 3 "
|
120
|
-
|
121
|
-
results = @parser.parse_data(data, header)
|
122
|
-
|
123
|
-
assert_nil results[""]
|
124
|
-
assert_equal 3, results.size
|
125
|
-
end
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
data/test/client/ts_all.rb
DELETED
data/test/ts_all.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'test/ts_client'
|
data/test/ts_client.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'test/client/ts_all'
|