diff --git a/library/kernel/scanner/json_parser.e b/library/kernel/scanner/json_parser.e index 089d28b5..a53e5a32 100644 --- a/library/kernel/scanner/json_parser.e +++ b/library/kernel/scanner/json_parser.e @@ -65,7 +65,7 @@ feature -- Commands -- Parse JSON data `representation' -- start ::= object | array do - if is_valid_start_symbol then + if is_valid_start_symbol then Result := parse if extra_elements then is_parsed := False diff --git a/test/autotest/test_suite/test_json_suite.e b/test/autotest/test_suite/test_json_suite.e index f1b95a92..812fb391 100644 --- a/test/autotest/test_suite/test_json_suite.e +++ b/test/autotest/test_suite/test_json_suite.e @@ -24,351 +24,468 @@ feature {NONE} -- Events create file_reader end - feature -- Tests Pass test_json_pass1 -- - do - json_file:=file_reader.read_json_from (test_dir + "pass1.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("pass1.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("pass1.json",parse_json.is_parsed = True) - end + assert ("pass1.json",parse_json.is_parsed = True) + end + end test_json_pass2 -- - do - json_file:=file_reader.read_json_from (test_dir +"pass2.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("pass2.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("pass2.json",parse_json.is_parsed = True) - end + assert ("pass2.json",parse_json.is_parsed = True) + end + end test_json_pass3 -- - do - json_file:=file_reader.read_json_from (test_dir +"pass3.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("pass3.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("pass3.json",parse_json.is_parsed = True) - end + assert ("pass3.json",parse_json.is_parsed = True) + end + end feature -- Tests Failures test_json_fail1 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail1.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail1.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail1.json",parse_json.is_parsed = False) - end + assert ("fail1.json",parse_json.is_parsed = False) + end + end test_json_fail2 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail2.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail2.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail2.json",parse_json.is_parsed = False) - end + assert ("fail2.json",parse_json.is_parsed = False) + end + end test_json_fail3 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail3.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail3.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail3.json",parse_json.is_parsed = False) - end + assert ("fail3.json",parse_json.is_parsed = False) + end + end test_json_fail4 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail4.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail4.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail4.json",parse_json.is_parsed = False) - end + assert ("fail4.json",parse_json.is_parsed = False) + end + end test_json_fail5 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail5.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail5.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail5.json",parse_json.is_parsed = False) - end + assert ("fail5.json",parse_json.is_parsed = False) + end + end test_json_fail6 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail6.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail6.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail6.json",parse_json.is_parsed = False ) - end + assert ("fail6.json",parse_json.is_parsed = False ) + end + end test_json_fail7 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail7.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail7.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail7.json",parse_json.is_parsed = False) - end + assert ("fail7.json",parse_json.is_parsed = False) + end + end test_json_fail8 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail8.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail8.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail8.json",parse_json.is_parsed = False ) - end + assert ("fail8.json",parse_json.is_parsed = False ) + end + end test_json_fail9 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail9.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail9.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail9.json",parse_json.is_parsed = False) - end + assert ("fail9.json",parse_json.is_parsed = False) + end + end test_json_fail10 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail10.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail10.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail10.json",parse_json.is_parsed = False) - end + assert ("fail10.json",parse_json.is_parsed = False) + end + end test_json_fail11 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail11.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail11.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail11.json",parse_json.is_parsed = False) - end + assert ("fail11.json",parse_json.is_parsed = False) + end + end test_json_fail12 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail12.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail12.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail12.json",parse_json.is_parsed = False) - end + assert ("fail12.json",parse_json.is_parsed = False) + end + end test_json_fail13 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail13.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail13.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail13.json",parse_json.is_parsed = False) - end + assert ("fail13.json",parse_json.is_parsed = False) + end + end test_json_fail14 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail14.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail14.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail14.json",parse_json.is_parsed = False) - end + assert ("fail14.json",parse_json.is_parsed = False) + end + end test_json_fail15 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail15.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail15.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail15.json",parse_json.is_parsed = False) - end + assert ("fail15.json",parse_json.is_parsed = False) + end + end test_json_fail16 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail16.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail16.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail16.json",parse_json.is_parsed = False) - end + assert ("fail16.json",parse_json.is_parsed = False) + end + end test_json_fail17 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail17.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail17.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail17.json",parse_json.is_parsed = False) - end + assert ("fail17.json",parse_json.is_parsed = False) + end + end test_json_fail18 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail18.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail18.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail18.json",parse_json.is_parsed = True) - end + assert ("fail18.json",parse_json.is_parsed = True) + end + end test_json_fail19 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail19.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail19.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail19.json",parse_json.is_parsed = False) - end + assert ("fail19.json",parse_json.is_parsed = False) + end + end test_json_fail20 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail20.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail20.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail20.json",parse_json.is_parsed = False) - end + assert ("fail20.json",parse_json.is_parsed = False) + end + end test_json_fail21 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail21.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail21.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail21.json",parse_json.is_parsed = False) - end + assert ("fail21.json",parse_json.is_parsed = False) + end + end test_json_fail22 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail22.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail22.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail22.json",parse_json.is_parsed = False) - end + assert ("fail22.json",parse_json.is_parsed = False) + end + end test_json_fail23 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail23.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail23.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail23.json",parse_json.is_parsed = False) - end + assert ("fail23.json",parse_json.is_parsed = False) + end + end test_json_fail24 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail24.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail24.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail24.json",parse_json.is_parsed = False) - end + assert ("fail24.json",parse_json.is_parsed = False) + end + end test_json_fail25 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail25.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail25.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail25.json",parse_json.is_parsed = False) - end + assert ("fail25.json",parse_json.is_parsed = False) + end + end test_json_fail26 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail26.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail26.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail26.json",parse_json.is_parsed = False) - end + assert ("fail26.json",parse_json.is_parsed = False) + end + end test_json_fail27 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail27.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail27.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail27.json",parse_json.is_parsed = False) - end + assert ("fail27.json",parse_json.is_parsed = False) + end + end test_json_fail28 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail28.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail28.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail28.json",parse_json.is_parsed = False) - end + assert ("fail28.json",parse_json.is_parsed = False) + end + end test_json_fail29 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail29.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail29.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail29.json",parse_json.is_parsed = False ) - end + assert ("fail29.json",parse_json.is_parsed = False ) + end + end test_json_fail30 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail30.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail30.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail30.json",parse_json.is_parsed = False) - end + assert ("fail30.json",parse_json.is_parsed = False) + end + end test_json_fail31 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail31.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail31.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail31.json",parse_json.is_parsed = False) - end + assert ("fail31.json",parse_json.is_parsed = False) + end + end test_json_fail32 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail32.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail32.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail32.json",parse_json.is_parsed = False) - end + assert ("fail32.json",parse_json.is_parsed = False) + end + end test_json_fail33 -- - do - json_file:=file_reader.read_json_from (test_dir +"fail33.json") - create parse_json.make_parser (json_file) + local + parse_json: like new_json_parser + do + if attached json_file_from ("fail33.json") as json_file then + parse_json := new_json_parser (json_file) json_value := parse_json.parse_json - assert ("fail33.json",parse_json.is_parsed = False) - end + assert ("fail33.json",parse_json.is_parsed = False) + end + end feature -- JSON_FROM_FILE - json_file : STRING - parse_json : JSON_PARSER - json_object : JSON_OBJECT - file_reader : JSON_FILE_READER - json_value : JSON_VALUE - test_dir : STRING + file_reader: JSON_FILE_READER + + json_value: detachable JSON_VALUE + + json_file_from (fn: STRING): detachable STRING + do + Result := file_reader.read_json_from (test_dir + fn) + assert ("File contains json data", Result /= Void) + end + + new_json_parser (a_string: STRING): JSON_PARSER + do + create Result.make_parser (a_string) + end + + test_dir: STRING local i: INTEGER do @@ -388,8 +505,10 @@ feature -- JSON_FROM_FILE end -- Result := "/home/jvelilla/work/project/Eiffel/ejson_dev/trunk/test/autotest/test_suite/" end - invariant - file_reader /= Void + +invariant + file_reader /= Void + end diff --git a/test/autotest/test_suite/test_suite-safe.ecf b/test/autotest/test_suite/test_suite-safe.ecf index 35306669..83526831 100644 --- a/test/autotest/test_suite/test_suite-safe.ecf +++ b/test/autotest/test_suite/test_suite-safe.ecf @@ -7,7 +7,7 @@ /CVS$ /.svn$ -