* Create .abapgit.xml * Create package.devc.xml * Create package.devc.xml * Create zcl_anagram.clas.xml * Update .abapgit.xml * Add packages * Add classes * Update packages * Update abapGit.xml * Update XML objects * Fix EOF * Update EE * Update EOF * Change starting folder * Add execises * Update .abapgit.xml * Package description * Update xml * Update EOF Co-authored-by: Marc Bernard <marc@mail.marcbernardtools.com>
188 lines
5.4 KiB
ABAP
188 lines
5.4 KiB
ABAP
CLASS ltcl_phone_number DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
|
|
|
|
PRIVATE SECTION.
|
|
|
|
DATA cut TYPE REF TO zcl_phone_number.
|
|
METHODS setup.
|
|
METHODS test_clean_number FOR TESTING RAISING cx_static_check.
|
|
METHODS test_clean_number_dots FOR TESTING RAISING cx_static_check.
|
|
METHODS test_clean_number_spaces FOR TESTING RAISING cx_static_check.
|
|
METHODS test_fail_nine_digits FOR TESTING RAISING cx_static_check.
|
|
METHODS test_fail_11_digits_not_1 FOR TESTING RAISING cx_static_check.
|
|
METHODS test_valid_11_digits_1 FOR TESTING RAISING cx_static_check.
|
|
METHODS test_valid_11_digits_punct FOR TESTING RAISING cx_static_check.
|
|
METHODS test_fail_more_11_digits FOR TESTING RAISING cx_static_check.
|
|
METHODS test_fail_letters FOR TESTING RAISING cx_static_check.
|
|
METHODS test_fail_punctuations FOR TESTING RAISING cx_static_check.
|
|
METHODS test_fail_areacode_0 FOR TESTING RAISING cx_static_check.
|
|
METHODS test_fail_areacode_1 FOR TESTING RAISING cx_static_check.
|
|
METHODS test_fail_exchangecode_0 FOR TESTING RAISING cx_static_check.
|
|
METHODS test_fail_exchangecode_1 FOR TESTING RAISING cx_static_check.
|
|
METHODS test_fail_areacode_0_11 FOR TESTING RAISING cx_static_check.
|
|
METHODS test_fail_areacode_1_11 FOR TESTING RAISING cx_static_check.
|
|
METHODS test_fail_exchangecode_0_11 FOR TESTING RAISING cx_static_check.
|
|
METHODS test_fail_exchangecode_1_11 FOR TESTING RAISING cx_static_check.
|
|
|
|
|
|
ENDCLASS.
|
|
|
|
CLASS ltcl_phone_number IMPLEMENTATION.
|
|
|
|
METHOD setup.
|
|
cut = NEW zcl_phone_number( ).
|
|
ENDMETHOD.
|
|
|
|
" cleans the number
|
|
METHOD test_clean_number.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->clean( '(223) 456-7890' )
|
|
exp = '2234567890' ).
|
|
ENDMETHOD.
|
|
|
|
"cleans numbers with dots
|
|
METHOD test_clean_number_dots.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->clean( '223.456.7890' )
|
|
exp = '2234567890' ).
|
|
ENDMETHOD.
|
|
|
|
"cleans numbers with multiple spaces
|
|
METHOD test_clean_number_spaces.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->clean( '223 456 7890 ' )
|
|
exp = '2234567890' ).
|
|
ENDMETHOD.
|
|
|
|
"invalid when 9 digits
|
|
METHOD test_fail_nine_digits.
|
|
TRY.
|
|
cut->clean( '123456789' ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH cx_parameter_invalid.
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
"invalid when 11 digits does not start with a 1
|
|
METHOD test_fail_11_digits_not_1.
|
|
TRY.
|
|
cut->clean( '22234567890' ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH cx_parameter_invalid.
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
"valid when 11 digits and starting with 1
|
|
METHOD test_valid_11_digits_1.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->clean( '12234567890' )
|
|
exp = '2234567890' ).
|
|
ENDMETHOD.
|
|
|
|
"valid when 11 digits and starting with 1 even with punctuation
|
|
METHOD test_valid_11_digits_punct.
|
|
cl_abap_unit_assert=>assert_equals(
|
|
act = cut->clean( '+1 (223) 456-7890' )
|
|
exp = '2234567890' ).
|
|
ENDMETHOD.
|
|
|
|
"invalid when more than 11 digits
|
|
METHOD test_fail_more_11_digits.
|
|
TRY.
|
|
cut->clean( '321234567890' ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH cx_parameter_invalid.
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
"invalid with letters
|
|
METHOD test_fail_letters.
|
|
TRY.
|
|
cut->clean( '123-abc-7890' ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH cx_parameter_invalid.
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
"invalid with punctuations
|
|
METHOD test_fail_punctuations.
|
|
TRY.
|
|
cut->clean( '123-@:!-7890' ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH cx_parameter_invalid.
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
"invalid if area code starts with 0
|
|
METHOD test_fail_areacode_0.
|
|
TRY.
|
|
cut->clean( '(023) 456-7890' ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH cx_parameter_invalid.
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
"invalid if area code starts with 1
|
|
METHOD test_fail_areacode_1.
|
|
TRY.
|
|
cut->clean( '(123) 456-7890' ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH cx_parameter_invalid.
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
"invalid if exchange code starts with 0
|
|
METHOD test_fail_exchangecode_0.
|
|
TRY.
|
|
cut->clean( '(223) 056-7890' ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH cx_parameter_invalid.
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
"invalid if exchange code starts with 1
|
|
METHOD test_fail_exchangecode_1.
|
|
TRY.
|
|
cut->clean( '(223) 156-7890' ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH cx_parameter_invalid.
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
"invalid if area code starts with 0 on valid 11-digit number
|
|
METHOD test_fail_areacode_0_11.
|
|
TRY.
|
|
cut->clean( '1 (023) 456-7890' ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH cx_parameter_invalid.
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
"invalid if area code starts with 1 on valid 11-digit number
|
|
METHOD test_fail_areacode_1_11.
|
|
TRY.
|
|
cut->clean( '1 (123) 456-7890' ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH cx_parameter_invalid.
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
"invalid if exchange code starts with 0 on valid 11-digit number
|
|
METHOD test_fail_exchangecode_0_11.
|
|
TRY.
|
|
cut->clean( '1 (223) 056-7890' ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH cx_parameter_invalid.
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
"invalid if exchange code starts with 1 on valid 11-digit number
|
|
METHOD test_fail_exchangecode_1_11.
|
|
TRY.
|
|
cut->clean( '1 (223) 156-7890' ).
|
|
cl_abap_unit_assert=>fail( ).
|
|
CATCH cx_parameter_invalid.
|
|
ENDTRY.
|
|
ENDMETHOD.
|
|
|
|
ENDCLASS.
|