# frozen_string_literal: true
require 'test_helper'

class CryptSerializerTest < ActiveSupport::TestCase
  test "should generate marshaled array" do
    string = "some string to encrypt"
    encrypted = CryptSerializer.dump string
    ar = Marshal.load(Base64.urlsafe_decode64(encrypted))

    assert_instance_of Array, ar
    assert_equal 3, ar.count
  end

  test "should encrypt and dencrypt" do
    string = "test@string.email"
    encrypted = CryptSerializer.dump string
    decrypted = CryptSerializer.load encrypted

    assert_equal string, decrypted
  end

  test "must raise RuntimeError" do
    assert_raises RuntimeError do
      CryptSerializer.dump nil
    end
  end
end
