login as:
~/abapcraft.dev — code, crafted in SAP
florin@s4hana:~/abap/posts/gilded-rose/src/ycl_item_shop.clas.testclasses.abap $ cat ycl_item_shop.clas.testclasses.abap
gilded-rose / src / ycl_item_shop.clas.testclasses.abap
ABAP 75 lines
*"* use this source file for your ABAP unit test classes
CLASS ltc_items_shop DEFINITION FINAL FOR TESTING
  DURATION SHORT
  RISK LEVEL HARMLESS.

  PRIVATE SECTION.
    METHODS:
      checks_root_instance     FOR TESTING,
      checks_subcl_aged_brie   FOR TESTING,
      checks_subcl_backstage   FOR TESTING,
      checks_subcl_sulfuras    FOR TESTING,
      checks_subcl_common      FOR TESTING,
      checks_conjured_item     FOR TESTING
      .
ENDCLASS.


CLASS ltc_items_shop IMPLEMENTATION.

  METHOD checks_root_instance.
    "Arrange
    DATA(mo_aged_brie) = NEW ycl_item( iv_name = 'Aged Brie' iv_quality = 1 iv_sell_in = 1 ).
    "Act
    DATA(lv_result) = xsdbool( ycl_item_shop=>create_item( mo_aged_brie ) IS INSTANCE OF ycl_item_root ).
    "Assert
    cl_abap_unit_assert=>assert_true( act = lv_result ).
  ENDMETHOD.

  METHOD checks_subcl_aged_brie  .
    "Arrange
    DATA(mo_aged_brie) = NEW ycl_item( iv_name = 'Aged Brie' iv_quality = 1 iv_sell_in = 1 ).
    "Act
    DATA(lv_result) = xsdbool( ycl_item_shop=>create_item( mo_aged_brie ) IS INSTANCE OF ycl_aged_brie ).
    "Assert
    cl_abap_unit_assert=>assert_true( act = lv_result ).
  ENDMETHOD.

  METHOD checks_subcl_backstage.
    "Arrange
    DATA(mo_aged_brie) = NEW ycl_item( iv_name = 'Backstage passes to a TAFKAL80ETC concert' iv_quality = 1 iv_sell_in = 1 ).
    "Act
    DATA(lv_result) = xsdbool( ycl_item_shop=>create_item( mo_aged_brie ) IS INSTANCE OF ycl_backstage ).
    "Assert
    cl_abap_unit_assert=>assert_true( act = lv_result ).
  ENDMETHOD.

  METHOD checks_subcl_sulfuras.
    "Arrange
    DATA(mo_aged_brie) = NEW ycl_item( iv_name = 'Sulfuras, Hand of Ragnaros' iv_quality = 1 iv_sell_in = 1 ).
    "Act
    DATA(lv_result) = xsdbool( ycl_item_shop=>create_item( mo_aged_brie ) IS INSTANCE OF ycl_sulfuras ).
    "Assert
    cl_abap_unit_assert=>assert_true( act = lv_result ).
  ENDMETHOD.

  METHOD checks_subcl_common.
    "Arrange
    DATA(mo_aged_brie) = NEW ycl_item( iv_name = 'Common Item' iv_quality = 1 iv_sell_in = 1 ).
    "Act
    DATA(lv_result) = xsdbool( ycl_item_shop=>create_item( mo_aged_brie ) IS INSTANCE OF ycl_common_item ).
    "Assert
    cl_abap_unit_assert=>assert_true( act = lv_result ).
  ENDMETHOD.

  METHOD checks_conjured_item.
    "Arrange
    DATA(mo_aged_brie) = NEW ycl_item( iv_name = 'Conjured Cake' iv_quality = 1 iv_sell_in = 1 ).
    "Act
    DATA(lv_result) = xsdbool( ycl_item_shop=>create_item( mo_aged_brie ) IS INSTANCE OF ycl_conjured_cake ).
    "Assert
    cl_abap_unit_assert=>assert_true( act = lv_result ).
  ENDMETHOD.

ENDCLASS.