CLASS ltc_tenancy_checker DEFINITION FINAL FOR TESTING DURATION SHORT RISK LEVEL HARMLESS. PRIVATE SECTION. TYPES ty_amount TYPE {{p}}if_tenancy_check=>ty_amount. DATA mo_cut TYPE REF TO {{p}}if_tenancy_check. METHODS setup. METHODS ok_application FOR TESTING. METHODS rent_must_be_positive FOR TESTING. METHODS income_must_be_positive FOR TESTING. METHODS overcrowded_flat FOR TESTING. METHODS unknown_employment FOR TESTING. METHODS income_too_low FOR TESTING. METHODS pets_need_more_income FOR TESTING. METHODS deposit_with_pets FOR TESTING. METHODS deposit_without_pets FOR TESTING. ENDCLASS. CLASS ltc_tenancy_checker IMPLEMENTATION. METHOD setup. mo_cut = NEW {{p}}tenancy_checker( ). ENDMETHOD. METHOD ok_application. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_tenancy_check=>c_reason-ok act = mo_cut->check( iv_rent = CONV ty_amount( 1200 ) iv_income = CONV ty_amount( 4000 ) iv_rooms = 2 iv_persons = 2 iv_employment = {{p}}if_tenancy_check=>c_employment-permanent iv_pets = abap_false ) ). ENDMETHOD. METHOD rent_must_be_positive. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_tenancy_check=>c_reason-rent act = mo_cut->check( iv_rent = CONV ty_amount( 0 ) iv_income = CONV ty_amount( 4000 ) iv_rooms = 2 iv_persons = 2 iv_employment = {{p}}if_tenancy_check=>c_employment-permanent iv_pets = abap_false ) ). ENDMETHOD. METHOD income_must_be_positive. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_tenancy_check=>c_reason-income act = mo_cut->check( iv_rent = CONV ty_amount( 1200 ) iv_income = CONV ty_amount( 0 ) iv_rooms = 2 iv_persons = 2 iv_employment = {{p}}if_tenancy_check=>c_employment-permanent iv_pets = abap_false ) ). ENDMETHOD. METHOD overcrowded_flat. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_tenancy_check=>c_reason-capacity act = mo_cut->check( iv_rent = CONV ty_amount( 1200 ) iv_income = CONV ty_amount( 4000 ) iv_rooms = 2 iv_persons = 5 iv_employment = {{p}}if_tenancy_check=>c_employment-permanent iv_pets = abap_false ) ). ENDMETHOD. METHOD unknown_employment. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_tenancy_check=>c_reason-employment act = mo_cut->check( iv_rent = CONV ty_amount( 1200 ) iv_income = CONV ty_amount( 4000 ) iv_rooms = 2 iv_persons = 2 iv_employment = 'X' iv_pets = abap_false ) ). ENDMETHOD. METHOD income_too_low. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_tenancy_check=>c_reason-ratio act = mo_cut->check( iv_rent = CONV ty_amount( 1200 ) iv_income = CONV ty_amount( 3500 ) iv_rooms = 2 iv_persons = 2 iv_employment = {{p}}if_tenancy_check=>c_employment-permanent iv_pets = abap_false ) ). ENDMETHOD. METHOD pets_need_more_income. cl_abap_unit_assert=>assert_equals( exp = {{p}}if_tenancy_check=>c_reason-ratio act = mo_cut->check( iv_rent = CONV ty_amount( 1200 ) iv_income = CONV ty_amount( 4000 ) iv_rooms = 2 iv_persons = 2 iv_employment = {{p}}if_tenancy_check=>c_employment-permanent iv_pets = abap_true ) ). ENDMETHOD. METHOD deposit_with_pets. cl_abap_unit_assert=>assert_equals( exp = CONV ty_amount( 3600 ) act = mo_cut->deposit( iv_rent = CONV ty_amount( 1200 ) iv_pets = abap_true ) ). ENDMETHOD. METHOD deposit_without_pets. cl_abap_unit_assert=>assert_equals( exp = CONV ty_amount( 2400 ) act = mo_cut->deposit( iv_rent = CONV ty_amount( 1200 ) iv_pets = abap_false ) ). ENDMETHOD. ENDCLASS.