add unit tests for zlib (#1271)

* add unit tests for ZCL_ABAPGIT_ZLIB_CONVERT

* add unit tests for ZCL_ABAPGIT_ZLIB_STREAM
This commit is contained in:
Lars Hvam 2018-03-26 13:55:22 +02:00 committed by GitHub
parent 936e500f0e
commit d49ac90a3b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 144 additions and 23 deletions

View File

@ -1,17 +1,24 @@
CLASS zcl_abapgit_zlib_convert DEFINITION PUBLIC CREATE PUBLIC.
CLASS zcl_abapgit_zlib_convert DEFINITION
PUBLIC
CREATE PUBLIC .
PUBLIC SECTION.
CLASS-METHODS:
hex_to_bits
IMPORTING iv_hex TYPE xsequence
RETURNING VALUE(rv_bits) TYPE string,
bits_to_int
IMPORTING iv_bits TYPE clike
RETURNING VALUE(rv_int) TYPE i,
int_to_hex
IMPORTING iv_int TYPE i
RETURNING VALUE(rv_hex) TYPE xstring.
CLASS-METHODS hex_to_bits
IMPORTING
!iv_hex TYPE xsequence
RETURNING
VALUE(rv_bits) TYPE string .
CLASS-METHODS bits_to_int
IMPORTING
!iv_bits TYPE clike
RETURNING
VALUE(rv_int) TYPE i .
CLASS-METHODS int_to_hex
IMPORTING
!iv_int TYPE i
RETURNING
VALUE(rv_hex) TYPE xstring .
ENDCLASS.

View File

@ -0,0 +1,61 @@
CLASS ltcl_test DEFINITION FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS FINAL.
PRIVATE SECTION.
DATA:
mo_cut TYPE REF TO zcl_abapgit_zlib_convert.
METHODS:
setup,
bits_to_int FOR TESTING,
hex_to_bits FOR TESTING,
int_to_hex FOR TESTING.
ENDCLASS.
CLASS ltcl_test IMPLEMENTATION.
METHOD setup.
CREATE OBJECT mo_cut.
ENDMETHOD.
METHOD bits_to_int.
DATA: lv_result TYPE i.
lv_result = mo_cut->bits_to_int( '111' ).
cl_abap_unit_assert=>assert_equals(
act = lv_result
exp = 7 ).
ENDMETHOD.
METHOD hex_to_bits.
DATA: lv_bits TYPE string.
lv_bits = mo_cut->hex_to_bits( '0101' ).
cl_abap_unit_assert=>assert_equals(
act = lv_bits
exp = '0000000100000001' ).
ENDMETHOD.
METHOD int_to_hex.
DATA: lv_hex TYPE xstring.
lv_hex = mo_cut->int_to_hex( 64 ).
cl_abap_unit_assert=>assert_equals(
act = lv_hex
exp = '40' ).
ENDMETHOD.
ENDCLASS.

View File

@ -6,12 +6,13 @@
<CLSNAME>ZCL_ABAPGIT_ZLIB_CONVERT</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>abapGit</DESCRIPT>
<DESCRIPT>zlib conversion routines</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
</VSEOCLASS>
</asx:values>
</asx:abap>

View File

@ -3,18 +3,23 @@ CLASS zcl_abapgit_zlib_stream DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
METHODS:
constructor
IMPORTING iv_data TYPE xstring,
take_bits
IMPORTING iv_length TYPE i
RETURNING VALUE(rv_bits) TYPE string,
take_int
IMPORTING iv_length TYPE i
RETURNING VALUE(rv_int) TYPE i,
remaining
RETURNING VALUE(rv_length) TYPE i.
METHODS constructor
IMPORTING
!iv_data TYPE xstring .
METHODS take_bits
IMPORTING
!iv_length TYPE i
RETURNING
VALUE(rv_bits) TYPE string .
METHODS take_int
IMPORTING
!iv_length TYPE i
RETURNING
VALUE(rv_int) TYPE i .
METHODS remaining
RETURNING
VALUE(rv_length) TYPE i .
PRIVATE SECTION.
DATA: mv_compressed TYPE xstring,
mv_bits TYPE string.

View File

@ -0,0 +1,46 @@
CLASS ltcl_test DEFINITION FOR TESTING
DURATION SHORT
RISK LEVEL HARMLESS FINAL.
PRIVATE SECTION.
METHODS: test FOR TESTING.
ENDCLASS. "ltcl_Test
CLASS ltcl_test IMPLEMENTATION.
METHOD test.
DATA: lo_stream TYPE REF TO zcl_abapgit_zlib_stream,
lv_remaining TYPE i,
lv_int TYPE i,
lv_bits TYPE string.
CREATE OBJECT lo_stream
EXPORTING
iv_data = '112233445566'.
lv_bits = lo_stream->take_bits( 8 ).
cl_abap_unit_assert=>assert_equals(
act = lv_bits
exp = '00010001' ).
lv_remaining = lo_stream->remaining( ).
cl_abap_unit_assert=>assert_equals(
act = lv_remaining
exp = 6 ).
lv_int = lo_stream->take_int( 8 ).
cl_abap_unit_assert=>assert_equals(
act = lv_int
exp = 34 ).
ENDMETHOD.
ENDCLASS.

View File

@ -12,6 +12,7 @@
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
</VSEOCLASS>
</asx:values>
</asx:abap>