Friday, September 20, 2024 12:01:10 AM
> settings

Customize


Authenticate

> esms_util_hashmap_to_array_spec.rb
# frozen_string_literal: true

describe "ESMs_util_hashmap_toArray", :requires_connection, v2: true do
  include_context "connection"

  it "converts the array to a hashmap" do
    response = execute_sqf!(
      <<~SQF
        private _footLongSubHashmap = createHashMapFromArray [["key_6", 6], ["key_7", 7]];
        private _subHashmap = createHashMapFromArray [["key_4", [4]], ["key_5", _footLongSubHashmap]];
        private _hashmap = createHashMapFromArray [["key_1", "value_1"], ["key_2", true], ["key_3", _subHashmap]];

        _result = _hashMap call ESMs_util_hashmap_toArray;
        if (isNil "_result") exitWith {};

        _result
      SQF
    )

    expect(response).to eq([["key_1", "value_1"], ["key_2", true], ["key_3", [["key_4", [4]], ["key_5", [["key_6", 6], ["key_7", 7]]]]]])
  end

  it "converts an array of hashmaps" do
    response = execute_sqf!(
      <<~SQF
        private _array = [];
        _array pushBack (createHashMapFromArray [["key_1", "value_1"], ["key_2", "value_2"]]);

        private _hashmap = createHashMapFromArray [["1", "11"]];
        _array pushBack [(createHashMapFromArray [["sub_key_1", "sub_value_1"], ["sub_key_2", [_hashmap]]])];

        _result = _array call ESMs_util_hashmap_toArray;
        if (isNil "_result") exitWith {};

        _result
      SQF
    )

    # For whatever reason, Arma wants to sort the entries in the second Hash like that
    expect(response).to eq([
      [["key_1", "value_1"], ["key_2", "value_2"]],
      [[["sub_key_2", [[["1", "11"]]]], ["sub_key_1", "sub_value_1"]]]
    ])
  end
end
All opinions represented herein are my own
- © 2024 itsthedevman
- build 3c15a1b