CLASS {{p}}cider_test DEFINITION PUBLIC FINAL CREATE PUBLIC FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. CLASS-DATA go_env TYPE REF TO if_osql_test_environment. CLASS-METHODS class_setup. CLASS-METHODS class_teardown. METHODS setup. METHODS stores_batch FOR TESTING. METHODS rejects_duplicate FOR TESTING. ENDCLASS. CLASS {{p}}cider_test IMPLEMENTATION. METHOD class_setup. go_env = cl_osql_test_environment=>create( i_dependency_list = VALUE #( ( '{{P}}CIDER' ) ) ). ENDMETHOD. METHOD class_teardown. go_env->destroy( ). ENDMETHOD. METHOD setup. go_env->clear_doubles( ). ENDMETHOD. METHOD stores_batch. DATA ls_batch TYPE {{p}}cider. ls_batch-batch_id = 'B000000001'. ls_batch-orchard_id = 'OR0001'. ls_batch-apple_kg = '480.500'. ls_batch-press_fee = '125.50'. ls_batch-currency_code = 'EUR'. INSERT {{p}}cider FROM @ls_batch. cl_abap_unit_assert=>assert_subrc( exp = 0 ). SELECT SINGLE orchard_id, apple_kg FROM {{p}}cider WHERE batch_id = 'B000000001' INTO @DATA(ls_read). cl_abap_unit_assert=>assert_subrc( exp = 0 ). cl_abap_unit_assert=>assert_equals( exp = 'OR0001' act = ls_read-orchard_id ). cl_abap_unit_assert=>assert_equals( exp = CONV decfloat34( '480.5' ) act = CONV decfloat34( ls_read-apple_kg ) ). ENDMETHOD. METHOD rejects_duplicate. DATA ls_batch TYPE {{p}}cider. ls_batch-batch_id = 'B000000002'. INSERT {{p}}cider FROM @ls_batch. cl_abap_unit_assert=>assert_subrc( exp = 0 ). INSERT {{p}}cider FROM @ls_batch. cl_abap_unit_assert=>assert_equals( exp = 4 act = sy-subrc ). ENDMETHOD. ENDCLASS.