All files / output zcl_abapgit_string_map.clas.testclasses.mjs

90.47% Statements 114/126
47.05% Branches 8/17
100% Functions 7/7
90.47% Lines 114/126

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 1261x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 4x 4x 4x 4x 4x 4x 4x 4x 4x 4x 1x 4x 4x 4x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x   1x 1x 1x     1x 1x 1x   1x 1x 1x     1x 1x 1x   1x 1x 1x     1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x   1x 1x 1x 1x 1x     1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x
const {zcl_abapgit_string_map} = await import("./zcl_abapgit_string_map.clas.mjs");
const {cx_root} = await import("./cx_root.clas.mjs");
// zcl_abapgit_string_map.clas.testclasses.abap
class ltcl_sm_test {
  static INTERNAL_TYPE = 'CLAS';
  static INTERNAL_NAME = 'CLAS-ZCL_ABAPGIT_STRING_MAP-LTCL_SM_TEST';
  static IMPLEMENTED_INTERFACES = [];
  static ATTRIBUTES = {};
  static METHODS = {"SIMPLE": {"visibility": "I", "parameters": {}},
  "FREEZE": {"visibility": "I", "parameters": {}},
  "STRICT": {"visibility": "I", "parameters": {}},
  "CASE_INSENSITIVE": {"visibility": "I", "parameters": {}}};
  constructor() {
    this.me = new abap.types.ABAPObject();
    this.me.set(this);
    this.INTERNAL_ID = abap.internalIdCounter++;
    this.FRIENDS_ACCESS_INSTANCE = {
      "simple": this.#simple.bind(this),
      "freeze": this.#freeze.bind(this),
      "strict": this.#strict.bind(this),
      "case_insensitive": this.#case_insensitive.bind(this),
    };
  }
  async constructor_(INPUT) {
    if (super.constructor_) { await super.constructor_(INPUT); }
    return this;
  }
  async #simple() {
    let lo_cut = new abap.types.ABAPObject({qualifiedName: "ZCL_ABAPGIT_STRING_MAP", RTTIName: "\\CLASS=ZCL_ABAPGIT_STRING_MAP"});
    lo_cut.set((await abap.Classes['ZCL_ABAPGIT_STRING_MAP'].create()));
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({act: (await lo_cut.get().is_empty()), exp: abap.builtin.abap_true});
    await lo_cut.get().set({iv_key: abap.CharacterFactory.get(1, 'A'), iv_val: abap.CharacterFactory.get(1, '1')});
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({act: (await lo_cut.get().is_empty()), exp: abap.builtin.abap_false});
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({act: (await lo_cut.get().has({iv_key: abap.CharacterFactory.get(1, 'A')})), exp: abap.builtin.abap_true});
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({act: (await lo_cut.get().get({iv_key: abap.CharacterFactory.get(1, 'A')})), exp: abap.CharacterFactory.get(1, '1')});
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({act: (await lo_cut.get().has({iv_key: abap.CharacterFactory.get(1, 'B')})), exp: abap.builtin.abap_false});
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({act: (await lo_cut.get().get({iv_key: abap.CharacterFactory.get(1, 'B')})), exp: abap.CharacterFactory.get(1, '')});
    await lo_cut.get().delete({iv_key: abap.CharacterFactory.get(1, 'A')});
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({act: (await lo_cut.get().is_empty()), exp: abap.builtin.abap_true});
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({act: (await lo_cut.get().has({iv_key: abap.CharacterFactory.get(1, 'A')})), exp: abap.builtin.abap_false});
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({act: (await lo_cut.get().get({iv_key: abap.CharacterFactory.get(1, 'A')})), exp: abap.CharacterFactory.get(1, '')});
  }
  async #freeze() {
    let lo_cut = new abap.types.ABAPObject({qualifiedName: "ZCL_ABAPGIT_STRING_MAP", RTTIName: "\\CLASS=ZCL_ABAPGIT_STRING_MAP"});
    lo_cut.set((await abap.Classes['ZCL_ABAPGIT_STRING_MAP'].create()));
    await (await lo_cut.get().set({iv_key: abap.CharacterFactory.get(1, 'A'), iv_val: abap.CharacterFactory.get(1, '1')})).get().freeze();
    try {
      await lo_cut.get().set({iv_key: abap.CharacterFactory.get(1, 'B'), iv_val: abap.CharacterFactory.get(1, '2')});
      await abap.Classes['CL_ABAP_UNIT_ASSERT'].fail();
    } catch (e) {
      if ((abap.Classes['ZCX_ABAPGIT_EXCEPTION'] && e instanceof abap.Classes['ZCX_ABAPGIT_EXCEPTION'])) {
      } else {
        throw e;
      }
    }
    try {
      await lo_cut.get().delete({iv_key: abap.CharacterFactory.get(1, 'A')});
      await abap.Classes['CL_ABAP_UNIT_ASSERT'].fail();
    } catch (e) {
      if ((abap.Classes['ZCX_ABAPGIT_EXCEPTION'] && e instanceof abap.Classes['ZCX_ABAPGIT_EXCEPTION'])) {
      } else {
        throw e;
      }
    }
    try {
      await lo_cut.get().clear();
      await abap.Classes['CL_ABAP_UNIT_ASSERT'].fail();
    } catch (e) {
      if ((abap.Classes['ZCX_ABAPGIT_EXCEPTION'] && e instanceof abap.Classes['ZCX_ABAPGIT_EXCEPTION'])) {
      } else {
        throw e;
      }
    }
  }
  async #strict() {
    let ls_struc_act = new abap.types.Structure({
    "a": new abap.types.String({qualifiedName: "LTCL_SM_TEST=>TY_STRUC-A"}),
    "b": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
    "c": new abap.types.Integer({qualifiedName: "LTCL_SM_TEST=>TY_STRUC-C"})}, "ltcl_sm_test=>ty_struc", undefined, {}, {});
    let ls_struc_exp = new abap.types.Structure({
    "a": new abap.types.String({qualifiedName: "LTCL_SM_TEST=>TY_STRUC-A"}),
    "b": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
    "c": new abap.types.Integer({qualifiedName: "LTCL_SM_TEST=>TY_STRUC-C"})}, "ltcl_sm_test=>ty_struc", undefined, {}, {});
    let lo_x = new abap.types.ABAPObject({qualifiedName: "CX_ROOT", RTTIName: "\\CLASS=CX_ROOT"});
    let lo_cut = new abap.types.ABAPObject({qualifiedName: "ZCL_ABAPGIT_STRING_MAP", RTTIName: "\\CLASS=ZCL_ABAPGIT_STRING_MAP"});
    let lo_map = new abap.types.ABAPObject({qualifiedName: "ZCL_ABAPGIT_STRING_MAP", RTTIName: "\\CLASS=ZCL_ABAPGIT_STRING_MAP"});
    lo_cut.set((await abap.Classes['ZCL_ABAPGIT_STRING_MAP'].create()));
    await lo_cut.get().set({iv_key: abap.CharacterFactory.get(1, 'a'), iv_val: abap.CharacterFactory.get(6, 'avalue')});
    await lo_cut.get().set({iv_key: abap.CharacterFactory.get(1, 'b'), iv_val: abap.CharacterFactory.get(1, 'X')});
    await lo_cut.get().set({iv_key: abap.CharacterFactory.get(1, 'c'), iv_val: abap.CharacterFactory.get(3, '123')});
    await lo_cut.get().set({iv_key: abap.CharacterFactory.get(1, 'z'), iv_val: abap.CharacterFactory.get(3, 'xyz')});
    ls_struc_exp.get().a.set(abap.CharacterFactory.get(6, 'avalue'));
    ls_struc_exp.get().b.set(abap.builtin.abap_true);
    ls_struc_exp.get().c.set(abap.IntegerFactory.get(123));
    try {
      await lo_cut.get().to_abap({cs_container: ls_struc_act});
      await abap.Classes['CL_ABAP_UNIT_ASSERT'].fail();
    } catch (e) {
      if ((abap.Classes['CX_ROOT'] && e instanceof abap.Classes['CX_ROOT'])) {
        lo_x.set(e);
        await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({exp: abap.CharacterFactory.get(31, 'Component Z not found in target'), act: (await lo_x.get().if_message$get_text())});
      } else {
        throw e;
      }
    }
    lo_map.set((await lo_cut.get().strict({iv_strict: abap.builtin.abap_false})));
    await lo_map.get().to_abap({cs_container: ls_struc_act});
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({exp: ls_struc_exp, act: ls_struc_act});
  }
  async #case_insensitive() {
    let lo_cut = new abap.types.ABAPObject({qualifiedName: "ZCL_ABAPGIT_STRING_MAP", RTTIName: "\\CLASS=ZCL_ABAPGIT_STRING_MAP"});
    lo_cut.set((await abap.Classes['ZCL_ABAPGIT_STRING_MAP'].create({iv_case_insensitive: abap.builtin.abap_true})));
    await lo_cut.get().set({iv_key: abap.CharacterFactory.get(1, 'A'), iv_val: abap.CharacterFactory.get(6, 'avalue')});
    await lo_cut.get().set({iv_key: abap.CharacterFactory.get(1, 'b'), iv_val: abap.CharacterFactory.get(6, 'bvalue')});
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({exp: abap.CharacterFactory.get(6, 'avalue'), act: (await lo_cut.get().get({iv_key: abap.CharacterFactory.get(1, 'A')}))});
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({exp: abap.CharacterFactory.get(6, 'avalue'), act: (await lo_cut.get().get({iv_key: abap.CharacterFactory.get(1, 'a')}))});
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({exp: abap.CharacterFactory.get(6, 'bvalue'), act: (await lo_cut.get().get({iv_key: abap.CharacterFactory.get(1, 'B')}))});
    await abap.Classes['CL_ABAP_UNIT_ASSERT'].assert_equals({exp: abap.CharacterFactory.get(6, 'bvalue'), act: (await lo_cut.get().get({iv_key: abap.CharacterFactory.get(1, 'b')}))});
  }
}
abap.Classes['CLAS-ZCL_ABAPGIT_STRING_MAP-LTCL_SM_TEST'] = ltcl_sm_test;
ltcl_sm_test.ty_struc = new abap.types.Structure({
"a": new abap.types.String({qualifiedName: "LTCL_SM_TEST=>TY_STRUC-A"}),
"b": new abap.types.Character(1, {"qualifiedName":"ABAP_BOOL","ddicName":"ABAP_BOOL"}),
"c": new abap.types.Integer({qualifiedName: "LTCL_SM_TEST=>TY_STRUC-C"})}, "ltcl_sm_test=>ty_struc", undefined, {}, {});
export {ltcl_sm_test};