Sha256: 44e006f6f362b0c9ca8c425a0c088e4fa4073cf03307c8ce7a025cb2a9eee28a

Contents?: true

Size: 1.45 KB

Versions: 2

Compression:

Stored size: 1.45 KB

Contents

# -*- coding: utf-8 -*-

require 'test_helper'

class TokenUtilTest < ActiveSupport::TestCase
  def setup
    @mod = TokenUtil
  end

  test "create_token" do
    assert_match(/\A[0-9a-f]{10}\z/, @mod.create_token(10))
    assert_match(/\A[0-9a-f]{20}\z/, @mod.create_token(20))
    assert_match(/\A[0-9a-f]{30}\z/, @mod.create_token(30))

    srand(0)
    assert_not_equal(
      @mod.create_token(20),
      @mod.create_token(20))
  end

  test "create_unique_token" do
    assert_match(/\A[0-9a-f]{10}\z/, @mod.create_unique_token(User, :user_token, 10))
    assert_match(/\A[0-9a-f]{20}\z/, @mod.create_unique_token(User, :user_token, 20))
    assert_match(/\A[0-9a-f]{30}\z/, @mod.create_unique_token(User, :user_token, 30))

    srand(0)
    assert_not_equal(
      @mod.create_unique_token(User, :user_token, 20),
      @mod.create_unique_token(User, :user_token, 20))
  end

  test "create_unique_token, conflict" do
    [
     [User,   :user_token],
    ].each { |klass, column|
      exist_token  = klass.first[column]
      unique_token = "0" * exist_token.size
      assert_equal(true,  klass.exists?(column => exist_token))
      assert_equal(false, klass.exists?(column => unique_token))

      tokens = [exist_token, unique_token]
      musha = Kagemusha.new(@mod)
      musha.defs(:create_token) { tokens.shift }
      musha.swap {
        assert_equal(
          unique_token,
          @mod.create_unique_token(klass, column, exist_token.size))
      }
    }
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
multi_auth-0.0.1 test/unit/token_util_test.rb
okkez-multi_auth-0.0.1 test/unit/token_util_test.rb