source: ruby/trunk/lib/adl_parser/test/scanner_test.rb@ 319

Last change on this file since 319 was 319, checked in by Tatsukawa, Akimichi, 15 years ago

polishing ADL parser to handle http://www.openehr.org/svn/knowledge/archetypes/dev/adl/test/

File size: 4.6 KB
Line 
1require File.dirname(__FILE__) + '/test_helper.rb'
2
3class ADLScannerTest < Test::Unit::TestCase
4 def setup
5 @scanner = OpenEhr::ADL::Scanner::ADLScanner.new([:adl], "filename")
6 end
7
8 must "assert OpenEhr::ADL::Scanner::ADLScanner scanner instance" do
9 assert_instance_of OpenEhr::ADL::Scanner::ADLScanner, @scanner
10 end
11
12 must "assert ADLScanner scanner scan CR and lineno incremented" do
13 lineno = @scanner.lineno
14 @scanner.scan("\n")
15 assert_equal lineno+1, @scanner.lineno
16 end
17
18 must "assert ADLScanner scanner scan ARCHETYPE_ID" do
19 lineno = @scanner.lineno
20 @scanner.scan("openEHR-EHR-OBSERVATION.body_mass_index.v1") do |sym, val|
21 assert_equal :V_ARCHETYPE_ID,sym
22 assert_instance_of OpenEhr::RM::Support::Identification::ArchetypeID,val
23 end
24 end
25
26 must "assert ADLScanner scanner scan white space and lineno unchanged" do
27 lineno = @scanner.lineno
28 @scanner.scan(" ")
29 assert_equal lineno, @scanner.lineno
30 end
31
32 must "assert ADLScanner scanner scan V_QUALIFIED_TERM_CODE_REF" do
33 @scanner.scan("[ICD10AM(1998)::F23]") do |sym, val|
34 assert_equal :V_QUALIFIED_TERM_CODE_REF,sym
35 assert_equal "ICD10AM(1998)::F23",val
36 end
37 end
38
39 must "assert ADLScanner scanner scan V_STRING" do
40 @scanner.scan("\"string\"") do |sym, val|
41 assert_equal :V_STRING,sym
42 assert_equal "string",val
43 end
44 @scanner.scan("\"1605E211E9BFB4093A72CCE7A9792FF9\"") do |sym, val|
45 assert_equal :V_STRING,sym
46 assert_equal "1605E211E9BFB4093A72CCE7A9792FF9",val
47 end
48 end
49end
50
51class CADLScannerTest < Test::Unit::TestCase
52 def setup
53 @scanner = OpenEhr::ADL::Scanner::CADLScanner.new([:cadl], "filename")
54 end
55
56 must "assert OpenEhr::ADL::Scanner::CADLScanner scanner instance" do
57 assert_instance_of OpenEhr::ADL::Scanner::CADLScanner, @scanner
58 end
59
60 must "assert CADLScanner scanner scan V_ATTRIBUTE_IDENTIFIER" do
61 lineno = @scanner.lineno
62 @scanner.scan("identifier") do |sym, val|
63 assert_equal :V_ATTRIBUTE_IDENTIFIER, sym
64 assert_equal "identifier", val
65 end
66 assert_equal lineno, @scanner.lineno
67 end
68
69 must "assert CADLScanner scanner scan reserved words" do
70 lineno = @scanner.lineno
71 @scanner.scan("then") do |sym, val|
72 assert_equal :SYM_THEN, sym
73 end
74 end
75
76 must "assert CADLScanner scanner scan V_QUALIFIED_TERM_CODE_REF" do
77 @scanner.scan("[ICD10AM(1998)::F23]") do |sym, val|
78 assert_equal :V_QUALIFIED_TERM_CODE_REF,sym
79 assert_equal "ICD10AM(1998)::F23",val
80 end
81 end
82
83 must "assert CADLScanner scanner scan V_ISO8601_DURATION" do
84 @scanner.scan("PT1M") do |sym, val|
85 assert_equal :V_ISO8601_DURATION,sym
86 assert_equal "PT1M",val
87 end
88
89 @scanner.scan("P1D") do |sym, val|
90 assert_equal :V_ISO8601_DURATION,sym
91 assert_equal "PT1M",val
92 end
93 end
94
95 must "assert CADLScanner scanner scan V_STRING" do
96 @scanner.scan("\"string\"") do |sym, val|
97 assert_equal :V_STRING,sym
98 assert_equal "string",val
99 end
100 @scanner.scan("\"1605E211E9BFB4093A72CCE7A9792FF9\"") do |sym, val|
101 assert_equal :V_STRING,sym
102 assert_equal "1605E211E9BFB4093A72CCE7A9792FF9",val
103 end
104 end
105
106 must "assert CADLScanner scanner scan V_ISO8601_DURATION_CONSTRAINT_PATTERN" do
107 @scanner.scan("PW") do |sym, val|
108 assert_equal :V_ISO8601_DURATION_CONSTRAINT_PATTERN,sym
109 assert_equal "PW",val
110 end
111 end
112end
113
114class DADLScannerTest < Test::Unit::TestCase
115 def setup
116 @scanner = OpenEhr::ADL::Scanner::DADLScanner.new([:dadl], "filename")
117 end
118
119 must "assert DADLScanner scanner scan V_QUALIFIED_TERM_CODE_REF" do
120 @scanner.scan("[ICD10AM(1998)::F23]") do |sym, val|
121 assert_equal :V_QUALIFIED_TERM_CODE_REF,sym
122 assert_equal "ICD10AM(1998)::F23",val
123 end
124 end
125
126 must "assert DADLScanner scanner scan V_ISO8601_EXTENDED_DATE" do
127 @scanner.scan("2005-10-10") do |sym, val|
128 assert_equal :V_ISO8601_EXTENDED_DATE,sym
129 assert_equal "2005-10-10",val
130 end
131 end
132
133 must "assert DADLScanner scanner scan V_STRING" do
134 @scanner.scan("\"string\"") do |sym, val|
135 assert_equal :V_STRING,sym
136 assert_equal "string",val
137 end
138
139 @scanner.scan("\"2005-10-10\"") do |sym, val|
140 assert_equal :V_STRING,sym
141 assert_equal "2005-10-10",val
142 end
143
144 @scanner.scan("\"1605E211E9BFB4093A72CCE7A9792FF9\"") do |sym, val|
145 assert_equal :V_STRING,sym
146 assert_equal "1605E211E9BFB4093A72CCE7A9792FF9",val
147 end
148 end
149
150 must "assert DADLScanner scanner scan V_URI" do
151 @scanner.scan("http://openEHR.org/Services") do |sym, val|
152 assert_equal :V_URI,sym
153 assert_equal "http://openEHR.org/Services",val
154 end
155 end
156end
Note: See TracBrowser for help on using the repository browser.