From 3ce3335f12f858fed5ee81c7188ec030418f0332 Mon Sep 17 00:00:00 2001 From: AtomKrieg Date: Sat, 16 Dec 2017 17:32:45 +0300 Subject: [PATCH] Create zcl_excel_worksheet.clas.testclasses.abap --- src/zcl_excel_worksheet.clas.testclasses.abap | 395 ++++++++++++++++++ 1 file changed, 395 insertions(+) create mode 100644 src/zcl_excel_worksheet.clas.testclasses.abap diff --git a/src/zcl_excel_worksheet.clas.testclasses.abap b/src/zcl_excel_worksheet.clas.testclasses.abap new file mode 100644 index 0000000..9c21dd4 --- /dev/null +++ b/src/zcl_excel_worksheet.clas.testclasses.abap @@ -0,0 +1,395 @@ + +CLASS LCL_EXCEL_WORKSHEET_TEST DEFINITION FOR TESTING + "#AU Risk_Level Harmless + "#AU Duration Short +. +*? +*? +*? +*?lcl_Excel_Worksheet_Test +*? +*?f_Cut +*? +*?ZCL_EXCEL_WORKSHEET +*? +*? +*?X +*? +*?X +*? +*?X +*? +*?X +*? +*? +*? +*? + PRIVATE SECTION. +* ================ + DATA: + F_CUT TYPE REF TO ZCL_EXCEL_WORKSHEET. "class under test + + CLASS-METHODS: CLASS_SETUP. + CLASS-METHODS: CLASS_TEARDOWN. + METHODS: SETUP. + METHODS: TEARDOWN. + METHODS: SET_MERGE FOR TESTING. + METHODS: DELETE_MERGE FOR TESTING. +ENDCLASS. "lcl_Excel_Worksheet_Test + + +CLASS LCL_EXCEL_WORKSHEET_TEST IMPLEMENTATION. +* ============================================== + + METHOD CLASS_SETUP. +* =================== + + ENDMETHOD. "class_Setup + + + METHOD CLASS_TEARDOWN. +* ====================== + + + ENDMETHOD. "class_Teardown + + + METHOD SETUP. +* ============= + + DATA LO_EXCEL TYPE REF TO ZCL_EXCEL. + + CREATE OBJECT LO_EXCEL. + + CREATE OBJECT F_CUT + EXPORTING IP_EXCEL = LO_EXCEL. + + ENDMETHOD. "setup + + + METHOD TEARDOWN. +* ================ + + + ENDMETHOD. "teardown + + METHOD SET_MERGE. +* ==================== + + DATA LT_MERGE TYPE STRING_TABLE. + DATA LV_MERGE TYPE STRING. + DATA LV_SIZE TYPE I. + DATA LV_SIZE_NEXT TYPE I. + + +* Test 1. Simple test for initial value + + LT_MERGE = F_CUT->GET_MERGE( ). + LV_SIZE = LINES( LT_MERGE ). + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_SIZE + EXP = 0 + MSG = 'Initial state of merge table is not empty' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + + +* Test 2. Add merge + + F_CUT->SET_MERGE( + IP_COLUMN_START = 2 + IP_COLUMN_END = 3 + IP_ROW = 2 + IP_ROW_TO = 3 + ). + + LT_MERGE = F_CUT->GET_MERGE( ). + LV_SIZE_NEXT = LINES( LT_MERGE ). + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_SIZE_NEXT - LV_SIZE + EXP = 1 + MSG = 'Expect add 1 table line when 1 merge added' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + +* Test 2. Add same merge + + LV_SIZE = LV_SIZE_NEXT. + + TRY. + F_CUT->SET_MERGE( + IP_COLUMN_START = 2 + IP_COLUMN_END = 3 + IP_ROW = 2 + IP_ROW_TO = 3 + ). + CATCH ZCX_EXCEL. + ENDTRY. + + LT_MERGE = F_CUT->GET_MERGE( ). + LV_SIZE_NEXT = LINES( LT_MERGE ). + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_SIZE_NEXT - LV_SIZE + EXP = 0 + MSG = 'Expect no change when add same merge' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + +* Test 3. Add one different merge + + LV_SIZE = LV_SIZE_NEXT. + + F_CUT->SET_MERGE( + IP_COLUMN_START = 4 + IP_COLUMN_END = 5 + IP_ROW = 2 + IP_ROW_TO = 3 + ). + + LT_MERGE = F_CUT->GET_MERGE( ). + LV_SIZE_NEXT = LINES( LT_MERGE ). + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_SIZE_NEXT - LV_SIZE + EXP = 1 + MSG = 'Expect 1 change when add different merge' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + +* Test 4. Merge added with concrete value #1 + + F_CUT->DELETE_MERGE( ). + + F_CUT->SET_MERGE( + IP_COLUMN_START = 2 + IP_COLUMN_END = 3 + IP_ROW = 2 + IP_ROW_TO = 3 + ). + + LT_MERGE = F_CUT->GET_MERGE( ). + READ TABLE LT_MERGE INTO LV_MERGE INDEX 1. + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_MERGE + EXP = 'B2:C3' + MSG = 'Expect B2:C3' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + +* Test 5. Merge added with concrete value #2 + + F_CUT->DELETE_MERGE( ). + + F_CUT->SET_MERGE( + IP_COLUMN_START = 4 + IP_COLUMN_END = 5 + IP_ROW = 4 + IP_ROW_TO = 5 + ). + + LT_MERGE = F_CUT->GET_MERGE( ). + READ TABLE LT_MERGE INTO LV_MERGE INDEX 1. + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_MERGE + EXP = 'D4:E5' + MSG = 'Expect D4:E5' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + + ENDMETHOD. + + METHOD DELETE_MERGE. +* ==================== + DATA LT_MERGE TYPE STRING_TABLE. + DATA LV_MERGE TYPE STRING. + DATA LV_SIZE TYPE I. + DATA LV_INDEX TYPE I. + +* Test 1. Simple test delete all merges + + F_CUT->SET_MERGE( + IP_COLUMN_START = 2 + IP_COLUMN_END = 3 + IP_ROW = 2 + IP_ROW_TO = 3 + ). + + F_CUT->DELETE_MERGE( ). + LT_MERGE = F_CUT->GET_MERGE( ). + LV_SIZE = LINES( LT_MERGE ). + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_SIZE + EXP = 0 + MSG = 'Expect merge table with 1 line fully cleared' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + +* Test 2. Simple test delete all merges + + DO 10 TIMES. + F_CUT->SET_MERGE( + IP_COLUMN_START = 2 + SY-INDEX * 2 + IP_COLUMN_END = 3 + SY-INDEX * 2 + IP_ROW = 2 + SY-INDEX * 2 + IP_ROW_TO = 3 + SY-INDEX * 2 + ). + ENDDO. + + F_CUT->DELETE_MERGE( ). + LT_MERGE = F_CUT->GET_MERGE( ). + LV_SIZE = LINES( LT_MERGE ). + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_SIZE + EXP = 0 + MSG = 'Expect merge table with few lines fully cleared' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + +* Test 3. Delete concrete merge with success + + DO 4 TIMES. + LV_INDEX = SY-INDEX. + + F_CUT->DELETE_MERGE( ). + + F_CUT->SET_MERGE( + IP_COLUMN_START = 2 + IP_COLUMN_END = 3 + IP_ROW = 2 + IP_ROW_TO = 3 + ). + + CASE LV_INDEX. + 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 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 ). + ENDCASE. + + LT_MERGE = F_CUT->GET_MERGE( ). + LV_SIZE = LINES( LT_MERGE ). + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_SIZE + EXP = 0 + MSG = 'Expect merge table with 1 line fully cleared' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + ENDDO. + +* Test 4. Delete concrete merge with fail + + DO 4 TIMES. + LV_INDEX = SY-INDEX. + + F_CUT->DELETE_MERGE( ). + + F_CUT->SET_MERGE( + IP_COLUMN_START = 2 + IP_COLUMN_END = 3 + IP_ROW = 2 + IP_ROW_TO = 3 + ). + + CASE LV_INDEX. + 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 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 ). + ENDCASE. + + LT_MERGE = F_CUT->GET_MERGE( ). + LV_SIZE = LINES( LT_MERGE ). + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_SIZE + EXP = 1 + MSG = 'Expect no merge were deleted' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + ENDDO. + +* Test 5. Delete concrete merge #1 + + F_CUT->DELETE_MERGE( ). + + F_CUT->SET_MERGE( + IP_COLUMN_START = 2 + IP_COLUMN_END = 3 + IP_ROW = 2 + IP_ROW_TO = 3 + ). + F_CUT->SET_MERGE( + IP_COLUMN_START = 4 + IP_COLUMN_END = 5 + IP_ROW = 4 + IP_ROW_TO = 5 + ). + + F_CUT->DELETE_MERGE( IP_CELL_COLUMN = 2 IP_CELL_ROW = 2 ). + LT_MERGE = F_CUT->GET_MERGE( ). + LV_SIZE = LINES( LT_MERGE ). + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_SIZE + EXP = 1 + MSG = 'Expect we have the one merge' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + + READ TABLE LT_MERGE INTO LV_MERGE INDEX 1. + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_MERGE + EXP = 'D4:E5' + MSG = 'Expect delete B2:C3 merge' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + +* Test 6. Delete concrete merge #2 + + F_CUT->DELETE_MERGE( ). + + F_CUT->SET_MERGE( + IP_COLUMN_START = 2 + IP_COLUMN_END = 3 + IP_ROW = 2 + IP_ROW_TO = 3 + ). + F_CUT->SET_MERGE( + IP_COLUMN_START = 4 + IP_COLUMN_END = 5 + IP_ROW = 4 + IP_ROW_TO = 5 + ). + + F_CUT->DELETE_MERGE( IP_CELL_COLUMN = 4 IP_CELL_ROW = 4 ). + LT_MERGE = F_CUT->GET_MERGE( ). + LV_SIZE = LINES( LT_MERGE ). + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_SIZE + EXP = 1 + MSG = 'Expect we have the one merge' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + + READ TABLE LT_MERGE INTO LV_MERGE INDEX 1. + + ZCL_EXCEL_COMMON=>ASSERT_EQUALS( + ACT = LV_MERGE + EXP = 'B2:C3' + MSG = 'Expect delete D4:E5 merge' + LEVEL = IF_AUNIT_CONSTANTS=>CRITICAL + ). + + ENDMETHOD. "delete_Merge + +ENDCLASS. "lcl_Excel_Worksheet_Test