mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +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
|
IMPORTING is_commit TYPE ty_commit
|
||||||
RETURNING VALUE(rv_data) TYPE xstring.
|
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.
|
PRIVATE SECTION.
|
||||||
CONSTANTS: c_pack_start TYPE x LENGTH 4 VALUE '5041434B', " PACK
|
CONSTANTS: c_pack_start TYPE x LENGTH 4 VALUE '5041434B', " PACK
|
||||||
c_zlib TYPE x LENGTH 2 VALUE '789C',
|
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
|
CHANGING ct_objects TYPE lif_defs=>ty_objects_tt
|
||||||
RAISING lcx_exception.
|
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
|
CLASS-METHODS delta
|
||||||
IMPORTING is_object TYPE lif_defs=>ty_object
|
IMPORTING is_object TYPE lif_defs=>ty_object
|
||||||
CHANGING ct_objects TYPE lif_defs=>ty_objects_tt
|
CHANGING ct_objects TYPE lif_defs=>ty_objects_tt
|
||||||
|
@ -430,7 +431,7 @@ CLASS lcl_git_pack IMPLEMENTATION.
|
||||||
lv_x TYPE x LENGTH 1.
|
lv_x TYPE x LENGTH 1.
|
||||||
|
|
||||||
|
|
||||||
CASE is_object-type.
|
CASE iv_type.
|
||||||
WHEN lif_defs=>gc_type-commit.
|
WHEN lif_defs=>gc_type-commit.
|
||||||
lv_type = '001'.
|
lv_type = '001'.
|
||||||
WHEN lif_defs=>gc_type-tree.
|
WHEN lif_defs=>gc_type-tree.
|
||||||
|
@ -443,7 +444,7 @@ CLASS lcl_git_pack IMPLEMENTATION.
|
||||||
lcx_exception=>raise( 'Unexpected object type while encoding pack' ).
|
lcx_exception=>raise( 'Unexpected object type while encoding pack' ).
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
||||||
lv_x4 = xstrlen( is_object-data ).
|
lv_x4 = iv_length.
|
||||||
DO 32 TIMES.
|
DO 32 TIMES.
|
||||||
GET BIT sy-index OF lv_x4 INTO lv_c.
|
GET BIT sy-index OF lv_x4 INTO lv_c.
|
||||||
CONCATENATE lv_bits lv_c INTO lv_bits.
|
CONCATENATE lv_bits lv_c INTO lv_bits.
|
||||||
|
@ -1025,22 +1026,20 @@ CLASS lcl_git_pack IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD encode.
|
METHOD encode.
|
||||||
|
|
||||||
DATA: lv_sha1 TYPE x LENGTH 20,
|
DATA: lv_sha1 TYPE x LENGTH 20,
|
||||||
lv_adler32 TYPE lcl_hash=>ty_adler32,
|
lv_adler32 TYPE lcl_hash=>ty_adler32,
|
||||||
lv_len TYPE i,
|
lv_compressed TYPE xstring,
|
||||||
lv_compressed TYPE xstring,
|
lv_xstring TYPE xstring,
|
||||||
lv_xstring TYPE xstring.
|
lv_objects_total TYPE i,
|
||||||
DATA: lv_objects_total TYPE i.
|
lv_objects_processed TYPE i.
|
||||||
DATA: lv_objects_processed TYPE i.
|
|
||||||
FIELD-SYMBOLS: <ls_object> LIKE LINE OF it_objects.
|
FIELD-SYMBOLS: <ls_object> LIKE LINE OF it_objects.
|
||||||
|
|
||||||
rv_data = c_pack_start.
|
rv_data = c_pack_start.
|
||||||
|
|
||||||
CONCATENATE rv_data c_version INTO rv_data IN BYTE MODE.
|
CONCATENATE rv_data c_version INTO rv_data IN BYTE MODE.
|
||||||
|
|
||||||
lv_len = lines( it_objects ).
|
lv_xstring = lcl_convert=>int_to_xstring4( lines( it_objects ) ).
|
||||||
lv_xstring = lcl_convert=>int_to_xstring( iv_i = lv_len
|
|
||||||
iv_length = 4 ).
|
|
||||||
CONCATENATE rv_data lv_xstring INTO rv_data IN BYTE MODE.
|
CONCATENATE rv_data lv_xstring INTO rv_data IN BYTE MODE.
|
||||||
|
|
||||||
lv_objects_total = lines( it_objects ).
|
lv_objects_total = lines( it_objects ).
|
||||||
|
@ -1053,7 +1052,9 @@ CLASS lcl_git_pack IMPLEMENTATION.
|
||||||
i_processed = lv_objects_processed
|
i_processed = lv_objects_processed
|
||||||
i_total = lv_objects_total ).
|
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.
|
CONCATENATE rv_data lv_xstring INTO rv_data IN BYTE MODE.
|
||||||
|
|
||||||
cl_abap_gzip=>compress_binary(
|
cl_abap_gzip=>compress_binary(
|
||||||
|
|
|
@ -62,6 +62,7 @@ ENDCLASS. "ltcl_convert DEFINITION
|
||||||
CLASS ltcl_convert IMPLEMENTATION.
|
CLASS ltcl_convert IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD convert_int.
|
METHOD convert_int.
|
||||||
|
|
||||||
DATA: lv_xstring TYPE xstring,
|
DATA: lv_xstring TYPE xstring,
|
||||||
lv_input TYPE i,
|
lv_input TYPE i,
|
||||||
lv_result TYPE i.
|
lv_result TYPE i.
|
||||||
|
@ -69,8 +70,7 @@ CLASS ltcl_convert IMPLEMENTATION.
|
||||||
|
|
||||||
DO 1000 TIMES.
|
DO 1000 TIMES.
|
||||||
lv_input = sy-index.
|
lv_input = sy-index.
|
||||||
lv_xstring = lcl_convert=>int_to_xstring( iv_i = lv_input
|
lv_xstring = lcl_convert=>int_to_xstring4( lv_input ).
|
||||||
iv_length = 4 ).
|
|
||||||
lv_result = lcl_convert=>xstring_to_int( lv_xstring ).
|
lv_result = lcl_convert=>xstring_to_int( lv_xstring ).
|
||||||
|
|
||||||
cl_abap_unit_assert=>assert_equals(
|
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
|
pack_multiple FOR TESTING
|
||||||
RAISING lcx_exception,
|
RAISING lcx_exception,
|
||||||
sort_tree1 FOR TESTING,
|
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:
|
METHODS:
|
||||||
object_blob
|
object_blob
|
||||||
|
@ -1113,6 +1117,34 @@ ENDCLASS. "test DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS ltcl_git_pack IMPLEMENTATION.
|
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.
|
METHOD sort_tree1.
|
||||||
|
|
||||||
DATA: lt_tree TYPE lcl_git_pack=>ty_nodes_tt.
|
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
|
RETURNING VALUE(rv_i) TYPE i
|
||||||
RAISING lcx_exception.
|
RAISING lcx_exception.
|
||||||
|
|
||||||
CLASS-METHODS int_to_xstring
|
CLASS-METHODS int_to_xstring4
|
||||||
IMPORTING iv_i TYPE i
|
IMPORTING iv_i TYPE i
|
||||||
iv_length TYPE i
|
|
||||||
RETURNING VALUE(rv_xstring) TYPE xstring.
|
RETURNING VALUE(rv_xstring) TYPE xstring.
|
||||||
|
|
||||||
CLASS-METHODS split_string
|
CLASS-METHODS split_string
|
||||||
|
@ -151,13 +150,12 @@ ENDCLASS. "lcl_convert DEFINITION
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
CLASS lcl_convert IMPLEMENTATION.
|
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.
|
DATA: lv_x TYPE x LENGTH 4.
|
||||||
|
|
||||||
|
|
||||||
ASSERT iv_length = 4. " other cases not implemented
|
|
||||||
|
|
||||||
lv_x = iv_i.
|
lv_x = iv_i.
|
||||||
rv_xstring = lv_x.
|
rv_xstring = lv_x.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user