CLASS {{p}}svc_job_test DEFINITION PUBLIC FINAL CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. METHODS structure_exists FOR TESTING. METHODS field_count FOR TESTING. METHODS net_value_type FOR TESTING. METHODS base_created_by_type FOR TESTING. ENDCLASS. CLASS {{p}}svc_job_test IMPLEMENTATION. METHOD structure_exists. DATA lo_descr TYPE REF TO cl_abap_typedescr. TRY. lo_descr = cl_abap_typedescr=>describe_by_name( '{{P}}SVC_JOB' ). CATCH cx_root. CLEAR lo_descr. ENDTRY. cl_abap_unit_assert=>assert_bound( act = lo_descr ). ENDMETHOD. METHOD field_count. DATA lo_structdescr TYPE REF TO cl_abap_structdescr. DATA lt_fields TYPE ddfields. lo_structdescr ?= cl_abap_typedescr=>describe_by_name( '{{P}}SVC_JOB' ). lt_fields = lo_structdescr->get_ddic_field_list( ). DELETE lt_fields WHERE fieldname CP '.*'. cl_abap_unit_assert=>assert_equals( exp = 10 act = lines( lt_fields ) ). ENDMETHOD. METHOD net_value_type. DATA lo_structdescr TYPE REF TO cl_abap_structdescr. DATA lt_fields TYPE ddfields. DATA ls_field TYPE dfies. lo_structdescr ?= cl_abap_typedescr=>describe_by_name( '{{P}}SVC_JOB' ). lt_fields = lo_structdescr->get_ddic_field_list( ). READ TABLE lt_fields INTO ls_field WITH KEY fieldname = 'NET_VALUE'. cl_abap_unit_assert=>assert_equals( exp = `DEC` act = CONV string( ls_field-datatype ) ). cl_abap_unit_assert=>assert_equals( exp = 13 act = ls_field-leng ). cl_abap_unit_assert=>assert_equals( exp = 2 act = ls_field-decimals ). ENDMETHOD. METHOD base_created_by_type. DATA lo_structdescr TYPE REF TO cl_abap_structdescr. DATA lt_fields TYPE ddfields. DATA ls_field TYPE dfies. lo_structdescr ?= cl_abap_typedescr=>describe_by_name( '{{P}}SVC_BASE' ). lt_fields = lo_structdescr->get_ddic_field_list( ). READ TABLE lt_fields INTO ls_field WITH KEY fieldname = 'CREATED_BY'. cl_abap_unit_assert=>assert_equals( exp = `CHAR` act = CONV string( ls_field-datatype ) ). cl_abap_unit_assert=>assert_equals( exp = 12 act = ls_field-leng ). ENDMETHOD. ENDCLASS.