class TestCodec

Main class for testing Stomp::HeadreCodec methods.

Public Instance Methods

setup() click to toggle source
# File test/test_codec.rb, line 17
def setup
  @conn = get_connection()
  # Data for multi_thread tests
  @max_threads = 20
  @max_msgs = 100
end
teardown() click to toggle source
# File test/test_codec.rb, line 24
def teardown
  @conn.disconnect if @conn.open? # allow tests to disconnect
end
test_1000_check_notneeded() click to toggle source

Test that the codec does nothing to strings that do not need encoding.

# File test/test_codec.rb, line 29
def test_1000_check_notneeded
  test_data = [
    "a",
    "abcdefghijklmnopqrstuvwxyz",
    "ªºÀÁ",
    "AÇBØCꞇDẼ",
    "ªºÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ" + 
              "ĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġDŽDždžLJLjǼǽǾǿȀȁȂȃȌȍȒɰɵɲɮᴘᴤᴭᴥᵻᶅ" +
              "ᶑṆṌṕṽẄẂỚỘⅱⅲꜨꝐꞂ",
    ]
  #
  test_data.each do |s|
    #
    s_decoded_a = Stomp::HeaderCodec::decode(s)
    assert_equal s, s_decoded_a, "Sanity check decode: #{s} | #{s_decoded_a}"
    s_reencoded = Stomp::HeaderCodec::encode(s_decoded_a)
    assert_equal s_decoded_a, s_reencoded, "Sanity check reencode: #{s_decoded_a} | #{s_reencoded}"
    #
  end
end
test_1010_basic_encode_decode() click to toggle source

Test the basic encoding / decoding requirements.

# File test/test_codec.rb, line 51
def test_1010_basic_encode_decode
  test_data = [
      [ "\\\\\\\\", "\\\\" ], # [encoded, decoded]
      [ "\\\\", "\\" ], # [encoded, decoded]
      ["\\n", "\n"],
      ["\\r", "\r"],
          ["\\c", ":"],
          ["\\\\\\n\\c", "\\\n:"],
          ["\\\\\\r\\c", "\\\r:"],
          ["\\c\\n\\\\", ":\n\\"],
          ["\\c\\r\\\\", ":\r\\"],
          ["\\\\\\c", "\\:"],
          ["c\\cc", "c:c"],
          ["n\\nn", "n\nn"],
          ["r\\rr", "r\rr"],
    ]
  #
  test_data.each do |s|
    encoded_orig = s[0]
    decoded_orig = s[1]

    # Part 1
    s_decoded_a = Stomp::HeaderCodec::decode(encoded_orig)
    assert_equal decoded_orig, s_decoded_a, "Sanity check decode: #{decoded_orig} | #{s_decoded_a}"
    #
    s_encoded_a = Stomp::HeaderCodec::encode(decoded_orig)
    assert_equal encoded_orig, s_encoded_a, "Sanity check encode: #{encoded_orig} | #{s_encoded_a}"

    # Part 2
    s_decoded_b = Stomp::HeaderCodec::decode(s_encoded_a)
    assert_equal decoded_orig, s_decoded_b, "Sanity check 2 decode: #{decoded_orig} | #{s_decoded_b}"
    #
    s_encoded_b = Stomp::HeaderCodec::encode(s_decoded_a)
    assert_equal encoded_orig, s_encoded_b, "Sanity check  2 encode: #{encoded_orig} | #{s_encoded_b}"
  end
end
test_1020_fancier() click to toggle source

Test more complex strings with the codec.

# File test/test_codec.rb, line 89
def test_1020_fancier
  test_data = [
      [ "a\\\\b", "a\\b" ],  # [encoded, decoded]
    [ "\\\\\\n\\c", "\\\n:" ],
    [ "\\\\\\r\\c", "\\\r:" ],
    [ "\\rr\\\\\\n\\c", "\rr\\\n:" ],
    ]
  #
  test_data.each do |s|
    encoded_orig = s[0]
    decoded_orig = s[1]

    # Part 1
    s_decoded_a = Stomp::HeaderCodec::decode(encoded_orig)
    assert_equal decoded_orig, s_decoded_a, "Sanity check decode: #{decoded_orig} | #{s_decoded_a}"
    #
    s_encoded_a = Stomp::HeaderCodec::encode(decoded_orig)
    assert_equal encoded_orig, s_encoded_a, "Sanity check encode: #{encoded_orig} | #{s_encoded_a}"

    # Part 2
    s_decoded_b = Stomp::HeaderCodec::decode(s_encoded_a)
    assert_equal decoded_orig, s_decoded_b, "Sanity check 2 decode: #{decoded_orig} | #{s_decoded_b}"
    #
    s_encoded_b = Stomp::HeaderCodec::encode(s_decoded_a)
    assert_equal encoded_orig, s_encoded_b, "Sanity check  2 encode: #{encoded_orig} | #{s_encoded_b}"
  end
end