mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 11:06:15 +08:00
* Fix #1011 exception ZCX_EXCEL is not caught * fix uncaught exception in test class * activate uncaught_exception check Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
This commit is contained in:
parent
46e234cd94
commit
7b7984373c
|
@ -36,7 +36,7 @@
|
||||||
"prefer_raise_exception_new": true,
|
"prefer_raise_exception_new": true,
|
||||||
"select_add_order_by": false,
|
"select_add_order_by": false,
|
||||||
"select_performance": false,
|
"select_performance": false,
|
||||||
"uncaught_exception": false,
|
"uncaught_exception": true,
|
||||||
"unsecure_fae": false,
|
"unsecure_fae": false,
|
||||||
"use_class_based_exceptions": false,
|
"use_class_based_exceptions": false,
|
||||||
"call_transaction_authority_check": true,
|
"call_transaction_authority_check": true,
|
||||||
|
|
|
@ -54,7 +54,8 @@ CLASS zcl_excel_reader_huge_file DEFINITION
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(es_cell) TYPE t_cell
|
VALUE(es_cell) TYPE t_cell
|
||||||
RAISING
|
RAISING
|
||||||
lcx_not_found .
|
lcx_not_found
|
||||||
|
zcx_excel.
|
||||||
METHODS read_shared_strings
|
METHODS read_shared_strings
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_reader TYPE REF TO if_sxml_reader
|
!io_reader TYPE REF TO if_sxml_reader
|
||||||
|
@ -64,7 +65,9 @@ CLASS zcl_excel_reader_huge_file DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_coord TYPE string
|
!iv_coord TYPE string
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(es_coord) TYPE t_cell_coord .
|
VALUE(es_coord) TYPE t_cell_coord
|
||||||
|
RAISING
|
||||||
|
zcx_excel.
|
||||||
METHODS put_cell_to_worksheet
|
METHODS put_cell_to_worksheet
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_worksheet TYPE REF TO zcl_excel_worksheet
|
!io_worksheet TYPE REF TO zcl_excel_worksheet
|
||||||
|
|
|
@ -40,18 +40,27 @@ CLASS lcl_test IMPLEMENTATION.
|
||||||
|
|
||||||
*
|
*
|
||||||
METHOD test_number.
|
METHOD test_number.
|
||||||
DATA lo_reader TYPE REF TO if_sxml_reader.
|
DATA: lo_reader TYPE REF TO if_sxml_reader,
|
||||||
|
lo_ex TYPE REF TO lcx_not_found,
|
||||||
|
lv_text TYPE string.
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" t="n"><v>17</v></c>`
|
`<c r="A1" t="n"><v>17</v></c>`
|
||||||
).
|
).
|
||||||
|
TRY.
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
assert_value_equals( `17` ).
|
assert_value_equals( `17` ).
|
||||||
assert_datatype_equals( `n` ).
|
assert_datatype_equals( `n` ).
|
||||||
|
CATCH lcx_not_found INTO lo_ex.
|
||||||
|
lv_text = lo_ex->get_text( ). " >>> May inspect the message in the debugger
|
||||||
|
cl_abap_unit_assert=>fail( lv_text ).
|
||||||
|
ENDTRY.
|
||||||
ENDMETHOD. "test_shared_string
|
ENDMETHOD. "test_shared_string
|
||||||
|
|
||||||
*
|
*
|
||||||
METHOD test_shared_string.
|
METHOD test_shared_string.
|
||||||
DATA lo_reader TYPE REF TO if_sxml_reader.
|
DATA: lo_reader TYPE REF TO if_sxml_reader,
|
||||||
|
lo_ex TYPE REF TO lcx_not_found,
|
||||||
|
lv_text TYPE string.
|
||||||
DATA: ls_shared_string TYPE zcl_excel_reader_huge_file=>t_shared_string.
|
DATA: ls_shared_string TYPE zcl_excel_reader_huge_file=>t_shared_string.
|
||||||
ls_shared_string-value = `Test1`.
|
ls_shared_string-value = `Test1`.
|
||||||
APPEND ls_shared_string TO out->shared_strings.
|
APPEND ls_shared_string TO out->shared_strings.
|
||||||
|
@ -60,13 +69,17 @@ CLASS lcl_test IMPLEMENTATION.
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" t="s"><v>1</v></c>`
|
`<c r="A1" t="s"><v>1</v></c>`
|
||||||
).
|
).
|
||||||
|
TRY.
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
assert_value_equals( `Test2` ).
|
assert_value_equals( `Test2` ).
|
||||||
assert_datatype_equals( `s` ).
|
assert_datatype_equals( `s` ).
|
||||||
|
CATCH lcx_not_found INTO lo_ex.
|
||||||
|
lv_text = lo_ex->get_text( ). " >>> May inspect the message in the debugger
|
||||||
|
cl_abap_unit_assert=>fail( lv_text ).
|
||||||
|
ENDTRY.
|
||||||
ENDMETHOD. "test_shared_string
|
ENDMETHOD. "test_shared_string
|
||||||
*
|
*
|
||||||
METHOD test_shared_string_missing.
|
METHOD test_shared_string_missing.
|
||||||
|
|
||||||
DATA: lo_reader TYPE REF TO if_sxml_reader,
|
DATA: lo_reader TYPE REF TO if_sxml_reader,
|
||||||
lo_ex TYPE REF TO lcx_not_found,
|
lo_ex TYPE REF TO lcx_not_found,
|
||||||
lv_text TYPE string.
|
lv_text TYPE string.
|
||||||
|
@ -87,43 +100,65 @@ CLASS lcl_test IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
*
|
*
|
||||||
METHOD test_inline_string.
|
METHOD test_inline_string.
|
||||||
DATA lo_reader TYPE REF TO if_sxml_reader.
|
DATA: lo_reader TYPE REF TO if_sxml_reader,
|
||||||
|
lo_ex TYPE REF TO lcx_not_found,
|
||||||
|
lv_text TYPE string.
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" t="inlineStr"><is><t>Alpha</t></is></c>`
|
`<c r="A1" t="inlineStr"><is><t>Alpha</t></is></c>`
|
||||||
).
|
).
|
||||||
|
TRY.
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
assert_value_equals( `Alpha` ).
|
assert_value_equals( `Alpha` ).
|
||||||
assert_datatype_equals( `inlineStr` ).
|
assert_datatype_equals( `inlineStr` ).
|
||||||
|
CATCH lcx_not_found INTO lo_ex.
|
||||||
|
lv_text = lo_ex->get_text( ). " >>> May inspect the message in the debugger
|
||||||
|
cl_abap_unit_assert=>fail( lv_text ).
|
||||||
|
ENDTRY.
|
||||||
ENDMETHOD. "test_inline_string
|
ENDMETHOD. "test_inline_string
|
||||||
|
|
||||||
*
|
*
|
||||||
METHOD test_boolean.
|
METHOD test_boolean.
|
||||||
DATA lo_reader TYPE REF TO if_sxml_reader.
|
DATA: lo_reader TYPE REF TO if_sxml_reader,
|
||||||
|
lo_ex TYPE REF TO lcx_not_found,
|
||||||
|
lv_text TYPE string.
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" t="b"><v>1</v></c>`
|
`<c r="A1" t="b"><v>1</v></c>`
|
||||||
).
|
).
|
||||||
|
TRY.
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
assert_value_equals( `1` ).
|
assert_value_equals( `1` ).
|
||||||
assert_datatype_equals( `b` ).
|
assert_datatype_equals( `b` ).
|
||||||
|
CATCH lcx_not_found INTO lo_ex.
|
||||||
|
lv_text = lo_ex->get_text( ). " >>> May inspect the message in the debugger
|
||||||
|
cl_abap_unit_assert=>fail( lv_text ).
|
||||||
|
ENDTRY.
|
||||||
ENDMETHOD. "test_boolean
|
ENDMETHOD. "test_boolean
|
||||||
|
|
||||||
*
|
*
|
||||||
METHOD test_formula.
|
METHOD test_formula.
|
||||||
DATA lo_reader TYPE REF TO if_sxml_reader.
|
DATA: lo_reader TYPE REF TO if_sxml_reader,
|
||||||
|
lo_ex TYPE REF TO lcx_not_found,
|
||||||
|
lv_text TYPE string.
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" t="n"><f>A2*A2</f></c>`
|
`<c r="A1" t="n"><f>A2*A2</f></c>`
|
||||||
).
|
).
|
||||||
|
TRY.
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
assert_formula_equals( `A2*A2` ).
|
assert_formula_equals( `A2*A2` ).
|
||||||
assert_datatype_equals( `n` ).
|
assert_datatype_equals( `n` ).
|
||||||
|
CATCH lcx_not_found INTO lo_ex.
|
||||||
|
lv_text = lo_ex->get_text( ). " >>> May inspect the message in the debugger
|
||||||
|
cl_abap_unit_assert=>fail( lv_text ).
|
||||||
|
ENDTRY.
|
||||||
ENDMETHOD. "test_formula
|
ENDMETHOD. "test_formula
|
||||||
|
|
||||||
*
|
*
|
||||||
METHOD test_empty_cells.
|
METHOD test_empty_cells.
|
||||||
|
|
||||||
* There is no need to store an empty cell in the ABAP worksheet structure
|
* There is no need to store an empty cell in the ABAP worksheet structure
|
||||||
|
DATA: lo_reader TYPE REF TO if_sxml_reader,
|
||||||
DATA: lo_reader TYPE REF TO if_sxml_reader.
|
lo_ex TYPE REF TO lcx_not_found,
|
||||||
|
lv_text TYPE string.
|
||||||
DATA: ls_shared_string TYPE zcl_excel_reader_huge_file=>t_shared_string.
|
DATA: ls_shared_string TYPE zcl_excel_reader_huge_file=>t_shared_string.
|
||||||
ls_shared_string-value = ``.
|
ls_shared_string-value = ``.
|
||||||
APPEND ls_shared_string TO out->shared_strings.
|
APPEND ls_shared_string TO out->shared_strings.
|
||||||
|
@ -135,18 +170,23 @@ CLASS lcl_test IMPLEMENTATION.
|
||||||
`<c r="A3" t="s"><v>1</v></c>`
|
`<c r="A3" t="s"><v>1</v></c>`
|
||||||
).
|
).
|
||||||
|
|
||||||
|
TRY.
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
|
|
||||||
assert_value_equals( iv_row = 1 iv_col = 1 iv_value = `` ).
|
assert_value_equals( iv_row = 1 iv_col = 1 iv_value = `` ).
|
||||||
assert_value_equals( iv_row = 2 iv_col = 1 iv_value = `` ).
|
assert_value_equals( iv_row = 2 iv_col = 1 iv_value = `` ).
|
||||||
assert_value_equals( iv_row = 3 iv_col = 1 iv_value = `t` ).
|
assert_value_equals( iv_row = 3 iv_col = 1 iv_value = `t` ).
|
||||||
|
CATCH lcx_not_found INTO lo_ex.
|
||||||
|
lv_text = lo_ex->get_text( ). " >>> May inspect the message in the debugger
|
||||||
|
cl_abap_unit_assert=>fail( lv_text ).
|
||||||
|
ENDTRY.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
*
|
*
|
||||||
METHOD test_style.
|
METHOD test_style.
|
||||||
DATA:
|
DATA: lo_reader TYPE REF TO if_sxml_reader,
|
||||||
lo_reader TYPE REF TO if_sxml_reader,
|
lo_ex TYPE REF TO lcx_not_found,
|
||||||
|
lv_text TYPE string,
|
||||||
lo_style TYPE REF TO zcl_excel_style,
|
lo_style TYPE REF TO zcl_excel_style,
|
||||||
lv_guid TYPE zexcel_cell_style.
|
lv_guid TYPE zexcel_cell_style.
|
||||||
CREATE OBJECT lo_style.
|
CREATE OBJECT lo_style.
|
||||||
|
@ -156,9 +196,13 @@ CLASS lcl_test IMPLEMENTATION.
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" s="0"><v>18</v></c>`
|
`<c r="A1" s="0"><v>18</v></c>`
|
||||||
).
|
).
|
||||||
|
TRY.
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
|
|
||||||
assert_style_equals( lv_guid ).
|
assert_style_equals( lv_guid ).
|
||||||
|
CATCH lcx_not_found INTO lo_ex.
|
||||||
|
lv_text = lo_ex->get_text( ). " >>> May inspect the message in the debugger
|
||||||
|
cl_abap_unit_assert=>fail( lv_text ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
ENDMETHOD. "test_style
|
ENDMETHOD. "test_style
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user