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

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

adl_scanner should properly change cADL or dADL scanners

File size: 3.9 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 end
89
90 must "assert CADLScanner scanner scan V_STRING" do
91 @scanner.scan("\"string\"") do |sym, val|
92 assert_equal :V_STRING,sym
93 assert_equal "string",val
94 end
95 @scanner.scan("\"1605E211E9BFB4093A72CCE7A9792FF9\"") do |sym, val|
96 assert_equal :V_STRING,sym
97 assert_equal "1605E211E9BFB4093A72CCE7A9792FF9",val
98 end
99 end
100end
101
102class DADLScannerTest < Test::Unit::TestCase
103 def setup
104 @scanner = OpenEhr::ADL::Scanner::DADLScanner.new([:dadl], "filename")
105 end
106
107 must "assert DADLScanner scanner scan V_QUALIFIED_TERM_CODE_REF" do
108 @scanner.scan("[ICD10AM(1998)::F23]") do |sym, val|
109 assert_equal :V_QUALIFIED_TERM_CODE_REF,sym
110 assert_equal "ICD10AM(1998)::F23",val
111 end
112 end
113
114 must "assert DADLScanner scanner scan V_ISO8601_EXTENDED_DATE" do
115 @scanner.scan("2005-10-10") do |sym, val|
116 assert_equal :V_ISO8601_EXTENDED_DATE,sym
117 assert_equal "2005-10-10",val
118 end
119 end
120
121 must "assert DADLScanner scanner scan V_STRING" do
122 @scanner.scan("\"string\"") do |sym, val|
123 assert_equal :V_STRING,sym
124 assert_equal "string",val
125 end
126 @scanner.scan("\"1605E211E9BFB4093A72CCE7A9792FF9\"") do |sym, val|
127 assert_equal :V_STRING,sym
128 assert_equal "1605E211E9BFB4093A72CCE7A9792FF9",val
129 end
130 end
131end
Note: See TracBrowser for help on using the repository browser.