pretty print zcl_excel_worksheet.clas.testclasses (#877)

Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
This commit is contained in:
Lars Hvam 2021-11-06 17:02:42 +01:00 committed by GitHub
parent a82056b285
commit a83d322a87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,41 +4,20 @@ CLASS zcl_excel_worksheet DEFINITION LOCAL FRIENDS
CLASS lcl_excel_worksheet_test DEFINITION FOR TESTING CLASS lcl_excel_worksheet_test DEFINITION FOR TESTING
RISK LEVEL HARMLESS RISK LEVEL HARMLESS
DURATION SHORT DURATION SHORT.
.
*?<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
*?<asx:values>
*?<TESTCLASS_OPTIONS>
*?<TEST_CLASS>lcl_Excel_Worksheet_Test
*?</TEST_CLASS>
*?<TEST_MEMBER>f_Cut
*?</TEST_MEMBER>
*?<OBJECT_UNDER_TEST>ZCL_EXCEL_WORKSHEET
*?</OBJECT_UNDER_TEST>
*?<OBJECT_IS_LOCAL/>
*?<GENERATE_FIXTURE>X
*?</GENERATE_FIXTURE>
*?<GENERATE_CLASS_FIXTURE>X
*?</GENERATE_CLASS_FIXTURE>
*?<GENERATE_INVOCATION>X
*?</GENERATE_INVOCATION>
*?<GENERATE_ASSERT_EQUAL>X
*?</GENERATE_ASSERT_EQUAL>
*?</TESTCLASS_OPTIONS>
*?</asx:values>
*?</asx:abap>
PRIVATE SECTION. PRIVATE SECTION.
* ================ * ================
DATA: DATA:
F_CUT TYPE REF TO ZCL_EXCEL_WORKSHEET. "class under test f_cut TYPE REF TO zcl_excel_worksheet. "class under test
CLASS-METHODS: CLASS_SETUP. CLASS-METHODS: class_setup.
CLASS-METHODS: CLASS_TEARDOWN. CLASS-METHODS: class_teardown.
METHODS: SETUP. METHODS: setup.
METHODS: TEARDOWN. METHODS: teardown.
METHODS: SET_MERGE FOR TESTING. METHODS: set_merge FOR TESTING.
METHODS: DELETE_MERGE FOR TESTING. METHODS: delete_merge FOR TESTING.
METHODS: GET_DIMENSION_RANGE FOR TESTING. METHODS: get_dimension_range FOR TESTING.
ENDCLASS. "lcl_Excel_Worksheet_Test ENDCLASS. "lcl_Excel_Worksheet_Test
@ -71,390 +50,391 @@ CLASS ltc_check_cell_column_formula DEFINITION FOR TESTING
zcx_excel. zcx_excel.
DATA: mt_column_formulas TYPE zcl_excel_worksheet=>mty_th_column_formula, DATA: mt_column_formulas TYPE zcl_excel_worksheet=>mty_th_column_formula,
c_messages LIKE zcl_excel_worksheet=>c_messages. c_messages LIKE zcl_excel_worksheet=>c_messages.
ENDCLASS. ENDCLASS.
CLASS LCL_EXCEL_WORKSHEET_TEST IMPLEMENTATION. CLASS lcl_excel_worksheet_test IMPLEMENTATION.
* ============================================== * ==============================================
METHOD CLASS_SETUP. METHOD class_setup.
* =================== * ===================
ENDMETHOD. "class_Setup ENDMETHOD. "class_Setup
METHOD CLASS_TEARDOWN. METHOD class_teardown.
* ====================== * ======================
ENDMETHOD. "class_Teardown ENDMETHOD. "class_Teardown
METHOD SETUP. METHOD setup.
* ============= * =============
DATA LO_EXCEL TYPE REF TO ZCL_EXCEL. DATA lo_excel TYPE REF TO zcl_excel.
CREATE OBJECT LO_EXCEL. CREATE OBJECT lo_excel.
CREATE OBJECT F_CUT CREATE OBJECT f_cut
EXPORTING IP_EXCEL = LO_EXCEL. EXPORTING
ip_excel = lo_excel.
ENDMETHOD. "setup ENDMETHOD. "setup
METHOD TEARDOWN. METHOD teardown.
* ================ * ================
ENDMETHOD. "teardown ENDMETHOD. "teardown
METHOD SET_MERGE. METHOD set_merge.
* ==================== * ====================
DATA LT_MERGE TYPE STRING_TABLE. DATA lt_merge TYPE string_table.
DATA LV_MERGE TYPE STRING. DATA lv_merge TYPE string.
DATA LV_SIZE TYPE I. DATA lv_size TYPE i.
DATA LV_SIZE_NEXT TYPE I. DATA lv_size_next TYPE i.
* Test 1. Simple test for initial value * Test 1. Simple test for initial value
LT_MERGE = F_CUT->GET_MERGE( ). lt_merge = f_cut->get_merge( ).
LV_SIZE = LINES( LT_MERGE ). lv_size = lines( lt_merge ).
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_SIZE act = lv_size
EXP = 0 exp = 0
MSG = 'Initial state of merge table is not empty' msg = 'Initial state of merge table is not empty'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
* Test 2. Add merge * Test 2. Add merge
F_CUT->SET_MERGE( f_cut->set_merge(
IP_COLUMN_START = 2 ip_column_start = 2
IP_COLUMN_END = 3 ip_column_end = 3
IP_ROW = 2 ip_row = 2
IP_ROW_TO = 3 ip_row_to = 3
). ).
LT_MERGE = F_CUT->GET_MERGE( ). lt_merge = f_cut->get_merge( ).
LV_SIZE_NEXT = LINES( LT_MERGE ). lv_size_next = lines( lt_merge ).
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_SIZE_NEXT - LV_SIZE act = lv_size_next - lv_size
EXP = 1 exp = 1
MSG = 'Expect add 1 table line when 1 merge added' msg = 'Expect add 1 table line when 1 merge added'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
* Test 2. Add same merge * Test 2. Add same merge
LV_SIZE = LV_SIZE_NEXT. lv_size = lv_size_next.
TRY. TRY.
F_CUT->SET_MERGE( f_cut->set_merge(
IP_COLUMN_START = 2 ip_column_start = 2
IP_COLUMN_END = 3 ip_column_end = 3
IP_ROW = 2 ip_row = 2
IP_ROW_TO = 3 ip_row_to = 3
). ).
CATCH ZCX_EXCEL. CATCH zcx_excel.
ENDTRY. ENDTRY.
LT_MERGE = F_CUT->GET_MERGE( ). lt_merge = f_cut->get_merge( ).
LV_SIZE_NEXT = LINES( LT_MERGE ). lv_size_next = lines( lt_merge ).
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_SIZE_NEXT - LV_SIZE act = lv_size_next - lv_size
EXP = 0 exp = 0
MSG = 'Expect no change when add same merge' msg = 'Expect no change when add same merge'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
* Test 3. Add one different merge * Test 3. Add one different merge
LV_SIZE = LV_SIZE_NEXT. lv_size = lv_size_next.
F_CUT->SET_MERGE( f_cut->set_merge(
IP_COLUMN_START = 4 ip_column_start = 4
IP_COLUMN_END = 5 ip_column_end = 5
IP_ROW = 2 ip_row = 2
IP_ROW_TO = 3 ip_row_to = 3
). ).
LT_MERGE = F_CUT->GET_MERGE( ). lt_merge = f_cut->get_merge( ).
LV_SIZE_NEXT = LINES( LT_MERGE ). lv_size_next = lines( lt_merge ).
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_SIZE_NEXT - LV_SIZE act = lv_size_next - lv_size
EXP = 1 exp = 1
MSG = 'Expect 1 change when add different merge' msg = 'Expect 1 change when add different merge'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
* Test 4. Merge added with concrete value #1 * Test 4. Merge added with concrete value #1
F_CUT->DELETE_MERGE( ). f_cut->delete_merge( ).
F_CUT->SET_MERGE( f_cut->set_merge(
IP_COLUMN_START = 2 ip_column_start = 2
IP_COLUMN_END = 3 ip_column_end = 3
IP_ROW = 2 ip_row = 2
IP_ROW_TO = 3 ip_row_to = 3
). ).
LT_MERGE = F_CUT->GET_MERGE( ). lt_merge = f_cut->get_merge( ).
READ TABLE LT_MERGE INTO LV_MERGE INDEX 1. READ TABLE lt_merge INTO lv_merge INDEX 1.
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_MERGE act = lv_merge
EXP = 'B2:C3' exp = 'B2:C3'
MSG = 'Expect B2:C3' msg = 'Expect B2:C3'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
* Test 5. Merge added with concrete value #2 * Test 5. Merge added with concrete value #2
F_CUT->DELETE_MERGE( ). f_cut->delete_merge( ).
F_CUT->SET_MERGE( f_cut->set_merge(
IP_COLUMN_START = 4 ip_column_start = 4
IP_COLUMN_END = 5 ip_column_end = 5
IP_ROW = 4 ip_row = 4
IP_ROW_TO = 5 ip_row_to = 5
). ).
LT_MERGE = F_CUT->GET_MERGE( ). lt_merge = f_cut->get_merge( ).
READ TABLE LT_MERGE INTO LV_MERGE INDEX 1. READ TABLE lt_merge INTO lv_merge INDEX 1.
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_MERGE act = lv_merge
EXP = 'D4:E5' exp = 'D4:E5'
MSG = 'Expect D4:E5' msg = 'Expect D4:E5'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
ENDMETHOD. ENDMETHOD.
METHOD DELETE_MERGE. METHOD delete_merge.
* ==================== * ====================
DATA LT_MERGE TYPE STRING_TABLE. DATA lt_merge TYPE string_table.
DATA LV_MERGE TYPE STRING. DATA lv_merge TYPE string.
DATA LV_SIZE TYPE I. DATA lv_size TYPE i.
DATA LV_INDEX TYPE I. DATA lv_index TYPE i.
* Test 1. Simple test delete all merges * Test 1. Simple test delete all merges
F_CUT->SET_MERGE( f_cut->set_merge(
IP_COLUMN_START = 2 ip_column_start = 2
IP_COLUMN_END = 3 ip_column_end = 3
IP_ROW = 2 ip_row = 2
IP_ROW_TO = 3 ip_row_to = 3
). ).
F_CUT->DELETE_MERGE( ). f_cut->delete_merge( ).
LT_MERGE = F_CUT->GET_MERGE( ). lt_merge = f_cut->get_merge( ).
LV_SIZE = LINES( LT_MERGE ). lv_size = lines( lt_merge ).
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_SIZE act = lv_size
EXP = 0 exp = 0
MSG = 'Expect merge table with 1 line fully cleared' msg = 'Expect merge table with 1 line fully cleared'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
* Test 2. Simple test delete all merges * Test 2. Simple test delete all merges
DO 10 TIMES. DO 10 TIMES.
F_CUT->SET_MERGE( f_cut->set_merge(
IP_COLUMN_START = 2 + SY-INDEX * 2 ip_column_start = 2 + sy-index * 2
IP_COLUMN_END = 3 + SY-INDEX * 2 ip_column_end = 3 + sy-index * 2
IP_ROW = 2 + SY-INDEX * 2 ip_row = 2 + sy-index * 2
IP_ROW_TO = 3 + SY-INDEX * 2 ip_row_to = 3 + sy-index * 2
). ).
ENDDO. ENDDO.
F_CUT->DELETE_MERGE( ). f_cut->delete_merge( ).
LT_MERGE = F_CUT->GET_MERGE( ). lt_merge = f_cut->get_merge( ).
LV_SIZE = LINES( LT_MERGE ). lv_size = lines( lt_merge ).
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_SIZE act = lv_size
EXP = 0 exp = 0
MSG = 'Expect merge table with few lines fully cleared' msg = 'Expect merge table with few lines fully cleared'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
* Test 3. Delete concrete merge with success * Test 3. Delete concrete merge with success
DO 4 TIMES. DO 4 TIMES.
LV_INDEX = SY-INDEX. lv_index = sy-index.
F_CUT->DELETE_MERGE( ). f_cut->delete_merge( ).
F_CUT->SET_MERGE( f_cut->set_merge(
IP_COLUMN_START = 2 ip_column_start = 2
IP_COLUMN_END = 3 ip_column_end = 3
IP_ROW = 2 ip_row = 2
IP_ROW_TO = 3 ip_row_to = 3
). ).
CASE LV_INDEX. CASE lv_index.
WHEN 1. F_CUT->DELETE_MERGE( IP_CELL_COLUMN = 2 IP_CELL_ROW = 2 ). WHEN 1. f_cut->delete_merge( ip_cell_column = 2 ip_cell_row = 2 ).
WHEN 2. F_CUT->DELETE_MERGE( IP_CELL_COLUMN = 2 IP_CELL_ROW = 3 ). WHEN 2. f_cut->delete_merge( ip_cell_column = 2 ip_cell_row = 3 ).
WHEN 3. F_CUT->DELETE_MERGE( IP_CELL_COLUMN = 3 IP_CELL_ROW = 2 ). WHEN 3. f_cut->delete_merge( ip_cell_column = 3 ip_cell_row = 2 ).
WHEN 4. F_CUT->DELETE_MERGE( IP_CELL_COLUMN = 3 IP_CELL_ROW = 3 ). WHEN 4. f_cut->delete_merge( ip_cell_column = 3 ip_cell_row = 3 ).
ENDCASE. ENDCASE.
LT_MERGE = F_CUT->GET_MERGE( ). lt_merge = f_cut->get_merge( ).
LV_SIZE = LINES( LT_MERGE ). lv_size = lines( lt_merge ).
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_SIZE act = lv_size
EXP = 0 exp = 0
MSG = 'Expect merge table with 1 line fully cleared' msg = 'Expect merge table with 1 line fully cleared'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
ENDDO. ENDDO.
* Test 4. Delete concrete merge with fail * Test 4. Delete concrete merge with fail
DO 4 TIMES. DO 4 TIMES.
LV_INDEX = SY-INDEX. lv_index = sy-index.
F_CUT->DELETE_MERGE( ). f_cut->delete_merge( ).
F_CUT->SET_MERGE( f_cut->set_merge(
IP_COLUMN_START = 2 ip_column_start = 2
IP_COLUMN_END = 3 ip_column_end = 3
IP_ROW = 2 ip_row = 2
IP_ROW_TO = 3 ip_row_to = 3
). ).
CASE LV_INDEX. CASE lv_index.
WHEN 1. F_CUT->DELETE_MERGE( IP_CELL_COLUMN = 1 IP_CELL_ROW = 2 ). WHEN 1. f_cut->delete_merge( ip_cell_column = 1 ip_cell_row = 2 ).
WHEN 2. F_CUT->DELETE_MERGE( IP_CELL_COLUMN = 2 IP_CELL_ROW = 1 ). WHEN 2. f_cut->delete_merge( ip_cell_column = 2 ip_cell_row = 1 ).
WHEN 3. F_CUT->DELETE_MERGE( IP_CELL_COLUMN = 4 IP_CELL_ROW = 2 ). WHEN 3. f_cut->delete_merge( ip_cell_column = 4 ip_cell_row = 2 ).
WHEN 4. F_CUT->DELETE_MERGE( IP_CELL_COLUMN = 2 IP_CELL_ROW = 4 ). WHEN 4. f_cut->delete_merge( ip_cell_column = 2 ip_cell_row = 4 ).
ENDCASE. ENDCASE.
LT_MERGE = F_CUT->GET_MERGE( ). lt_merge = f_cut->get_merge( ).
LV_SIZE = LINES( LT_MERGE ). lv_size = lines( lt_merge ).
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_SIZE act = lv_size
EXP = 1 exp = 1
MSG = 'Expect no merge were deleted' msg = 'Expect no merge were deleted'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
ENDDO. ENDDO.
* Test 5. Delete concrete merge #1 * Test 5. Delete concrete merge #1
F_CUT->DELETE_MERGE( ). f_cut->delete_merge( ).
F_CUT->SET_MERGE( f_cut->set_merge(
IP_COLUMN_START = 2 ip_column_start = 2
IP_COLUMN_END = 3 ip_column_end = 3
IP_ROW = 2 ip_row = 2
IP_ROW_TO = 3 ip_row_to = 3
). ).
F_CUT->SET_MERGE( f_cut->set_merge(
IP_COLUMN_START = 4 ip_column_start = 4
IP_COLUMN_END = 5 ip_column_end = 5
IP_ROW = 4 ip_row = 4
IP_ROW_TO = 5 ip_row_to = 5
). ).
F_CUT->DELETE_MERGE( IP_CELL_COLUMN = 2 IP_CELL_ROW = 2 ). f_cut->delete_merge( ip_cell_column = 2 ip_cell_row = 2 ).
LT_MERGE = F_CUT->GET_MERGE( ). lt_merge = f_cut->get_merge( ).
LV_SIZE = LINES( LT_MERGE ). lv_size = lines( lt_merge ).
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_SIZE act = lv_size
EXP = 1 exp = 1
MSG = 'Expect we have the one merge' msg = 'Expect we have the one merge'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
READ TABLE LT_MERGE INTO LV_MERGE INDEX 1. READ TABLE lt_merge INTO lv_merge INDEX 1.
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_MERGE act = lv_merge
EXP = 'D4:E5' exp = 'D4:E5'
MSG = 'Expect delete B2:C3 merge' msg = 'Expect delete B2:C3 merge'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
* Test 6. Delete concrete merge #2 * Test 6. Delete concrete merge #2
F_CUT->DELETE_MERGE( ). f_cut->delete_merge( ).
F_CUT->SET_MERGE( f_cut->set_merge(
IP_COLUMN_START = 2 ip_column_start = 2
IP_COLUMN_END = 3 ip_column_end = 3
IP_ROW = 2 ip_row = 2
IP_ROW_TO = 3 ip_row_to = 3
). ).
F_CUT->SET_MERGE( f_cut->set_merge(
IP_COLUMN_START = 4 ip_column_start = 4
IP_COLUMN_END = 5 ip_column_end = 5
IP_ROW = 4 ip_row = 4
IP_ROW_TO = 5 ip_row_to = 5
). ).
F_CUT->DELETE_MERGE( IP_CELL_COLUMN = 4 IP_CELL_ROW = 4 ). f_cut->delete_merge( ip_cell_column = 4 ip_cell_row = 4 ).
LT_MERGE = F_CUT->GET_MERGE( ). lt_merge = f_cut->get_merge( ).
LV_SIZE = LINES( LT_MERGE ). lv_size = lines( lt_merge ).
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_SIZE act = lv_size
EXP = 1 exp = 1
MSG = 'Expect we have the one merge' msg = 'Expect we have the one merge'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
READ TABLE LT_MERGE INTO LV_MERGE INDEX 1. READ TABLE lt_merge INTO lv_merge INDEX 1.
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = LV_MERGE act = lv_merge
EXP = 'B2:C3' exp = 'B2:C3'
MSG = 'Expect delete D4:E5 merge' msg = 'Expect delete D4:E5 merge'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
ENDMETHOD. "delete_Merge ENDMETHOD. "delete_Merge
METHOD GET_DIMENSION_RANGE. METHOD get_dimension_range.
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = F_CUT->GET_DIMENSION_RANGE( ) act = f_cut->get_dimension_range( )
EXP = 'A1' exp = 'A1'
MSG = 'get_dimension_range inital value' msg = 'get_dimension_range inital value'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
F_CUT->SET_CELL( f_cut->set_cell(
IP_ROW = 2 ip_row = 2
IP_COLUMN = 3 ip_column = 3
IP_VALUE = 'Dummy' ip_value = 'Dummy'
). ).
F_CUT->SET_CELL( f_cut->set_cell(
IP_ROW = 5 ip_row = 5
IP_COLUMN = 6 ip_column = 6
IP_VALUE = 'Dummy' ip_value = 'Dummy'
). ).
CL_ABAP_UNIT_ASSERT=>ASSERT_EQUALS( cl_abap_unit_assert=>assert_equals(
ACT = F_CUT->GET_DIMENSION_RANGE( ) act = f_cut->get_dimension_range( )
EXP = 'C2:F5' exp = 'C2:F5'
MSG = 'get_dimension_range' msg = 'get_dimension_range'
LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL level = if_aunit_constants=>critical
). ).
ENDMETHOD. ENDMETHOD.