mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
refactoring
rename METHOD int_to_xstring, and remove parameter change inputs for METHOD type_and_length and add unit tests
This commit is contained in:
parent
02bc202eb6
commit
5ff0cd9586
|
@ -114,6 +114,12 @@ CLASS lcl_git_pack DEFINITION FINAL FRIENDS ltcl_git_pack.
|
|||
IMPORTING is_commit TYPE ty_commit
|
||||
RETURNING VALUE(rv_data) TYPE xstring.
|
||||
|
||||
CLASS-METHODS type_and_length
|
||||
IMPORTING iv_type TYPE lif_defs=>ty_type
|
||||
iv_length TYPE i
|
||||
RETURNING VALUE(rv_xstring) TYPE xstring
|
||||
RAISING lcx_exception.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CONSTANTS: c_pack_start TYPE x LENGTH 4 VALUE '5041434B', " PACK
|
||||
c_zlib TYPE x LENGTH 2 VALUE '789C',
|
||||
|
@ -124,11 +130,6 @@ CLASS lcl_git_pack DEFINITION FINAL FRIENDS ltcl_git_pack.
|
|||
CHANGING ct_objects TYPE lif_defs=>ty_objects_tt
|
||||
RAISING lcx_exception.
|
||||
|
||||
CLASS-METHODS type_and_length
|
||||
IMPORTING is_object TYPE lif_defs=>ty_object
|
||||
RETURNING VALUE(rv_xstring) TYPE xstring
|
||||
RAISING lcx_exception.
|
||||
|
||||
CLASS-METHODS delta
|
||||
IMPORTING is_object TYPE lif_defs=>ty_object
|
||||
CHANGING ct_objects TYPE lif_defs=>ty_objects_tt
|
||||
|
@ -430,7 +431,7 @@ CLASS lcl_git_pack IMPLEMENTATION.
|
|||
lv_x TYPE x LENGTH 1.
|
||||
|
||||
|
||||
CASE is_object-type.
|
||||
CASE iv_type.
|
||||
WHEN lif_defs=>gc_type-commit.
|
||||
lv_type = '001'.
|
||||
WHEN lif_defs=>gc_type-tree.
|
||||
|
@ -443,7 +444,7 @@ CLASS lcl_git_pack IMPLEMENTATION.
|
|||
lcx_exception=>raise( 'Unexpected object type while encoding pack' ).
|
||||
ENDCASE.
|
||||
|
||||
lv_x4 = xstrlen( is_object-data ).
|
||||
lv_x4 = iv_length.
|
||||
DO 32 TIMES.
|
||||
GET BIT sy-index OF lv_x4 INTO lv_c.
|
||||
CONCATENATE lv_bits lv_c INTO lv_bits.
|
||||
|
@ -1025,22 +1026,20 @@ CLASS lcl_git_pack IMPLEMENTATION.
|
|||
|
||||
METHOD encode.
|
||||
|
||||
DATA: lv_sha1 TYPE x LENGTH 20,
|
||||
lv_adler32 TYPE lcl_hash=>ty_adler32,
|
||||
lv_len TYPE i,
|
||||
lv_compressed TYPE xstring,
|
||||
lv_xstring TYPE xstring.
|
||||
DATA: lv_objects_total TYPE i.
|
||||
DATA: lv_objects_processed TYPE i.
|
||||
DATA: lv_sha1 TYPE x LENGTH 20,
|
||||
lv_adler32 TYPE lcl_hash=>ty_adler32,
|
||||
lv_compressed TYPE xstring,
|
||||
lv_xstring TYPE xstring,
|
||||
lv_objects_total TYPE i,
|
||||
lv_objects_processed TYPE i.
|
||||
|
||||
FIELD-SYMBOLS: <ls_object> LIKE LINE OF it_objects.
|
||||
|
||||
rv_data = c_pack_start.
|
||||
|
||||
CONCATENATE rv_data c_version INTO rv_data IN BYTE MODE.
|
||||
|
||||
lv_len = lines( it_objects ).
|
||||
lv_xstring = lcl_convert=>int_to_xstring( iv_i = lv_len
|
||||
iv_length = 4 ).
|
||||
lv_xstring = lcl_convert=>int_to_xstring4( lines( it_objects ) ).
|
||||
CONCATENATE rv_data lv_xstring INTO rv_data IN BYTE MODE.
|
||||
|
||||
lv_objects_total = lines( it_objects ).
|
||||
|
@ -1053,7 +1052,9 @@ CLASS lcl_git_pack IMPLEMENTATION.
|
|||
i_processed = lv_objects_processed
|
||||
i_total = lv_objects_total ).
|
||||
|
||||
lv_xstring = type_and_length( <ls_object> ).
|
||||
lv_xstring = type_and_length(
|
||||
iv_type = <ls_object>-type
|
||||
iv_length = xstrlen( <ls_object>-data ) ).
|
||||
CONCATENATE rv_data lv_xstring INTO rv_data IN BYTE MODE.
|
||||
|
||||
cl_abap_gzip=>compress_binary(
|
||||
|
|
|
@ -62,6 +62,7 @@ ENDCLASS. "ltcl_convert DEFINITION
|
|||
CLASS ltcl_convert IMPLEMENTATION.
|
||||
|
||||
METHOD convert_int.
|
||||
|
||||
DATA: lv_xstring TYPE xstring,
|
||||
lv_input TYPE i,
|
||||
lv_result TYPE i.
|
||||
|
@ -69,8 +70,7 @@ CLASS ltcl_convert IMPLEMENTATION.
|
|||
|
||||
DO 1000 TIMES.
|
||||
lv_input = sy-index.
|
||||
lv_xstring = lcl_convert=>int_to_xstring( iv_i = lv_input
|
||||
iv_length = 4 ).
|
||||
lv_xstring = lcl_convert=>int_to_xstring4( lv_input ).
|
||||
lv_result = lcl_convert=>xstring_to_int( lv_xstring ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
|
@ -1096,7 +1096,11 @@ CLASS ltcl_git_pack DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FI
|
|||
pack_multiple FOR TESTING
|
||||
RAISING lcx_exception,
|
||||
sort_tree1 FOR TESTING,
|
||||
sort_tree2 FOR TESTING.
|
||||
sort_tree2 FOR TESTING,
|
||||
type_and_length01 FOR TESTING
|
||||
RAISING lcx_exception,
|
||||
type_and_length02 FOR TESTING
|
||||
RAISING lcx_exception.
|
||||
|
||||
METHODS:
|
||||
object_blob
|
||||
|
@ -1113,6 +1117,34 @@ ENDCLASS. "test DEFINITION
|
|||
*----------------------------------------------------------------------*
|
||||
CLASS ltcl_git_pack IMPLEMENTATION.
|
||||
|
||||
METHOD type_and_length01.
|
||||
|
||||
DATA: lv_result TYPE xstring.
|
||||
|
||||
lv_result = lcl_git_pack=>type_and_length(
|
||||
iv_type = lif_defs=>gc_type-commit
|
||||
iv_length = 100 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_result
|
||||
exp = '9406' ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD type_and_length02.
|
||||
|
||||
DATA: lv_result TYPE xstring.
|
||||
|
||||
lv_result = lcl_git_pack=>type_and_length(
|
||||
iv_type = lif_defs=>gc_type-blob
|
||||
iv_length = 90000 ).
|
||||
|
||||
cl_abap_unit_assert=>assert_equals(
|
||||
act = lv_result
|
||||
exp = 'B0F92B' ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD sort_tree1.
|
||||
|
||||
DATA: lt_tree TYPE lcl_git_pack=>ty_nodes_tt.
|
||||
|
|
|
@ -133,9 +133,8 @@ CLASS lcl_convert DEFINITION FINAL.
|
|||
RETURNING VALUE(rv_i) TYPE i
|
||||
RAISING lcx_exception.
|
||||
|
||||
CLASS-METHODS int_to_xstring
|
||||
CLASS-METHODS int_to_xstring4
|
||||
IMPORTING iv_i TYPE i
|
||||
iv_length TYPE i
|
||||
RETURNING VALUE(rv_xstring) TYPE xstring.
|
||||
|
||||
CLASS-METHODS split_string
|
||||
|
@ -151,13 +150,12 @@ ENDCLASS. "lcl_convert DEFINITION
|
|||
*----------------------------------------------------------------------*
|
||||
CLASS lcl_convert IMPLEMENTATION.
|
||||
|
||||
METHOD int_to_xstring.
|
||||
METHOD int_to_xstring4.
|
||||
* returns xstring of length 4 containing the integer value iv_i
|
||||
|
||||
DATA: lv_x TYPE x LENGTH 4.
|
||||
|
||||
|
||||
ASSERT iv_length = 4. " other cases not implemented
|
||||
|
||||
lv_x = iv_i.
|
||||
rv_xstring = lv_x.
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user