128 lines
5.2 KiB
ABAP
128 lines
5.2 KiB
ABAP
CLASS {{p}}forge_hidden DEFINITION PUBLIC FINAL CREATE PUBLIC
|
|
FOR TESTING DURATION SHORT RISK LEVEL HARMLESS.
|
|
PRIVATE SECTION.
|
|
CLASS-DATA go_env TYPE REF TO if_cds_test_environment.
|
|
CLASS-METHODS class_setup.
|
|
CLASS-METHODS class_teardown.
|
|
METHODS setup.
|
|
METHODS open_jobs_only FOR TESTING.
|
|
METHODS done_job_hidden FOR TESTING.
|
|
METHODS job_without_article FOR TESTING.
|
|
METHODS job_without_customer FOR TESTING.
|
|
METHODS article_fields FOR TESTING.
|
|
METHODS customer_fields FOR TESTING.
|
|
METHODS heavy_effort FOR TESTING.
|
|
METHODS light_effort FOR TESTING.
|
|
METHODS exact_limit_light FOR TESTING.
|
|
METHODS work_min_shown FOR TESTING.
|
|
METHODS boundary_over_limit FOR TESTING.
|
|
METHODS missing_article_no_row FOR TESTING.
|
|
ENDCLASS.
|
|
|
|
|
|
CLASS {{p}}forge_hidden IMPLEMENTATION.
|
|
METHOD class_setup.
|
|
go_env = cl_cds_test_environment=>create( i_for_entity = '{{P}}I_FORGE_JOB' ).
|
|
ENDMETHOD.
|
|
|
|
METHOD class_teardown.
|
|
go_env->destroy( ).
|
|
ENDMETHOD.
|
|
|
|
METHOD setup.
|
|
DATA lt_job TYPE STANDARD TABLE OF {{p}}forgjob WITH EMPTY KEY.
|
|
DATA lt_art TYPE STANDARD TABLE OF {{p}}forgart WITH EMPTY KEY.
|
|
DATA lt_cus TYPE STANDARD TABLE OF {{p}}forgcus WITH EMPTY KEY.
|
|
go_env->clear_doubles( ).
|
|
lt_job = VALUE #(
|
|
( job_id = 'B1' article_id = 'W1' job_date = '20240301' work_min = 200 job_state = 'O' )
|
|
( job_id = 'B2' article_id = 'W2' job_date = '20240302' work_min = 60 job_state = 'O' )
|
|
( job_id = 'B3' article_id = 'W3' job_date = '20240303' work_min = 90 job_state = 'O' )
|
|
( job_id = 'B4' article_id = 'W1' job_date = '20240304' work_min = 120 job_state = 'D' )
|
|
( job_id = 'B5' article_id = 'W4' job_date = '20240305' work_min = 30 job_state = 'O' )
|
|
( job_id = 'B6' article_id = 'W1' job_date = '20240306' work_min = 120 job_state = 'O' )
|
|
( job_id = 'B7' article_id = 'W2' job_date = '20240307' work_min = 121 job_state = 'O' )
|
|
( job_id = 'B8' article_id = 'W9' job_date = '20240308' work_min = 45 job_state = 'O' ) ).
|
|
lt_art = VALUE #(
|
|
( article_id = 'W1' customer_id = 'K1' article_name = 'GATE' weight_kg = 40 )
|
|
( article_id = 'W2' customer_id = 'K2' article_name = 'FENCE' weight_kg = 25 )
|
|
( article_id = 'W4' customer_id = 'K9' article_name = 'RAILING' weight_kg = 15 ) ).
|
|
lt_cus = VALUE #(
|
|
( customer_id = 'K1' customer_name = 'ALPHA' city = 'BREMEN' )
|
|
( customer_id = 'K2' customer_name = 'BETA' city = 'KIEL' )
|
|
( customer_id = '' customer_name = 'ORPHAN' city = 'NOWHERE' ) ).
|
|
go_env->insert_test_data( lt_job ).
|
|
go_env->insert_test_data( lt_art ).
|
|
go_env->insert_test_data( lt_cus ).
|
|
ENDMETHOD.
|
|
|
|
METHOD open_jobs_only.
|
|
SELECT COUNT(*) FROM {{p}}i_forge_job INTO @DATA(lv_count).
|
|
cl_abap_unit_assert=>assert_equals( exp = 4 act = lv_count ).
|
|
ENDMETHOD.
|
|
|
|
METHOD done_job_hidden.
|
|
SELECT COUNT(*) FROM {{p}}i_forge_job WHERE job_id = 'B4' INTO @DATA(lv_count).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_count ).
|
|
ENDMETHOD.
|
|
|
|
METHOD job_without_article.
|
|
SELECT COUNT(*) FROM {{p}}i_forge_job WHERE job_id = 'B3' INTO @DATA(lv_count).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_count ).
|
|
ENDMETHOD.
|
|
|
|
METHOD job_without_customer.
|
|
SELECT COUNT(*) FROM {{p}}i_forge_job WHERE job_id = 'B5' INTO @DATA(lv_count).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_count ).
|
|
ENDMETHOD.
|
|
|
|
METHOD article_fields.
|
|
SELECT SINGLE article_name, weight_kg FROM {{p}}i_forge_job
|
|
WHERE job_id = 'B1' INTO @DATA(ls_row).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'GATE' act = ls_row-article_name ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 40 act = ls_row-weight_kg ).
|
|
ENDMETHOD.
|
|
|
|
METHOD customer_fields.
|
|
SELECT SINGLE customer_name, city FROM {{p}}i_forge_job
|
|
WHERE job_id = 'B2' INTO @DATA(ls_row).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'BETA' act = ls_row-customer_name ).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'KIEL' act = ls_row-city ).
|
|
ENDMETHOD.
|
|
|
|
METHOD heavy_effort.
|
|
SELECT SINGLE effort FROM {{p}}i_forge_job
|
|
WHERE job_id = 'B1' INTO @DATA(lv_effort).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'HEAVY' act = lv_effort ).
|
|
ENDMETHOD.
|
|
|
|
METHOD light_effort.
|
|
SELECT SINGLE effort FROM {{p}}i_forge_job
|
|
WHERE job_id = 'B2' INTO @DATA(lv_effort).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'LIGHT' act = lv_effort ).
|
|
ENDMETHOD.
|
|
|
|
METHOD exact_limit_light.
|
|
SELECT SINGLE effort FROM {{p}}i_forge_job
|
|
WHERE job_id = 'B6' INTO @DATA(lv_effort).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'LIGHT' act = lv_effort ).
|
|
ENDMETHOD.
|
|
|
|
METHOD work_min_shown.
|
|
SELECT SINGLE work_min FROM {{p}}i_forge_job
|
|
WHERE job_id = 'B6' INTO @DATA(lv_min).
|
|
cl_abap_unit_assert=>assert_equals( exp = 120 act = lv_min ).
|
|
ENDMETHOD.
|
|
|
|
METHOD boundary_over_limit.
|
|
SELECT SINGLE effort FROM {{p}}i_forge_job
|
|
WHERE job_id = 'B7' INTO @DATA(lv_effort).
|
|
cl_abap_unit_assert=>assert_equals( exp = 'HEAVY' act = lv_effort ).
|
|
ENDMETHOD.
|
|
|
|
METHOD missing_article_no_row.
|
|
SELECT COUNT(*) FROM {{p}}i_forge_job WHERE job_id = 'B8' INTO @DATA(lv_count).
|
|
cl_abap_unit_assert=>assert_equals( exp = 0 act = lv_count ).
|
|
ENDMETHOD.
|
|
ENDCLASS.
|