Stage 2 summary at 50 accepted trajectories

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Kral
2026-10-05 18:02:52 +02:00
parent 332fb4601d
commit 5bcd1bf9cd
1230 changed files with 77563 additions and 33 deletions

View File

@@ -0,0 +1,103 @@
CLASS ltc_gravel_pricer DEFINITION FINAL FOR TESTING
DURATION SHORT RISK LEVEL HARMLESS.
PRIVATE SECTION.
CLASS-DATA mo_env TYPE REF TO if_osql_test_environment.
DATA mo_cut TYPE REF TO {{p}}gravel_pricer.
CLASS-METHODS class_setup.
CLASS-METHODS class_teardown.
METHODS setup.
METHODS small_order_ok FOR TESTING.
METHODS medium_order_discount FOR TESTING.
METHODS bulk_order_discount FOR TESTING.
METHODS five_tonnes_discount FOR TESTING.
METHODS unknown_order FOR TESTING.
METHODS unknown_grade FOR TESTING.
METHODS zero_quantity FOR TESTING.
ENDCLASS.
CLASS ltc_gravel_pricer IMPLEMENTATION.
METHOD class_setup.
mo_env = cl_osql_test_environment=>create( VALUE #( ( '{{P}}GRV_ORD' ) ) ).
DATA lt_order TYPE STANDARD TABLE OF {{p}}grv_ord WITH EMPTY KEY.
lt_order = VALUE #(
( order_id = 'ORD0000001' grade = 'F' tonnes = 3 customer = 'BuildIt Ltd' )
( order_id = 'ORD0000002' grade = 'M' tonnes = 12 customer = 'Roadworks AG' )
( order_id = 'ORD0000003' grade = 'C' tonnes = 25 customer = 'City Council' )
( order_id = 'ORD0000004' grade = 'F' tonnes = 5 customer = 'Stone and Co' )
( order_id = 'ORD0000005' grade = 'X' tonnes = 7 customer = 'Bad Data Ltd' )
( order_id = 'ORD0000006' grade = 'M' tonnes = 0 customer = 'Zero Ltd' ) ).
mo_env->insert_test_data( lt_order ).
ENDMETHOD.
METHOD class_teardown.
mo_env->destroy( ).
ENDMETHOD.
METHOD setup.
mo_cut = NEW {{p}}gravel_pricer( ).
ENDMETHOD.
METHOD small_order_ok.
DATA(ls_result) = mo_cut->price_order( 'ORD0000001' ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}gravel_pricer=>ty_amount( '126.00' )
act = ls_result-net_amount ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}gravel_pricer=>c_reason-ok
act = ls_result-reason ).
ENDMETHOD.
METHOD medium_order_discount.
DATA(ls_result) = mo_cut->price_order( 'ORD0000002' ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}gravel_pricer=>ty_amount( '410.40' )
act = ls_result-net_amount ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}gravel_pricer=>c_reason-ok
act = ls_result-reason ).
ENDMETHOD.
METHOD bulk_order_discount.
DATA(ls_result) = mo_cut->price_order( 'ORD0000003' ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}gravel_pricer=>ty_amount( '675.00' )
act = ls_result-net_amount ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}gravel_pricer=>c_reason-ok
act = ls_result-reason ).
ENDMETHOD.
METHOD five_tonnes_discount.
DATA(ls_result) = mo_cut->price_order( 'ORD0000004' ).
cl_abap_unit_assert=>assert_equals(
exp = CONV {{p}}gravel_pricer=>ty_amount( '199.50' )
act = ls_result-net_amount ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}gravel_pricer=>c_reason-ok
act = ls_result-reason ).
ENDMETHOD.
METHOD unknown_order.
DATA(ls_result) = mo_cut->price_order( 'ORD9999999' ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}gravel_pricer=>c_reason-not_found
act = ls_result-reason ).
ENDMETHOD.
METHOD unknown_grade.
DATA(ls_result) = mo_cut->price_order( 'ORD0000005' ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}gravel_pricer=>c_reason-grade
act = ls_result-reason ).
ENDMETHOD.
METHOD zero_quantity.
DATA(ls_result) = mo_cut->price_order( 'ORD0000006' ).
cl_abap_unit_assert=>assert_equals(
exp = {{p}}gravel_pricer=>c_reason-quantity
act = ls_result-reason ).
ENDMETHOD.
ENDCLASS.