Sha256: 47e1b4765c140afb9e8af1237dc5840fbb64a5501e81cef80bfe79e87770569e

Contents?: true

Size: 1020 Bytes

Versions: 4

Compression:

Stored size: 1020 Bytes

Contents

require 'test_helper'

class HasTokenTest < ActiveSupport::TestCase
  class MockModel
    attr_accessor :token
    @@instances = []
    
    def initialize(token = nil)
      self.token = token
      @@instances.push(self)
    end
    
    def find_by_token(token)
      @@instances.find { |i| i.token == token && i != self } || nil
    end
    
    def class
      self
    end
  end
  
  def test_new_token
    assert_not_nil HasToken::TokenGenerator.new.new_token
  end
  
  def test_new_token_size
    assert_equal 5, HasToken::TokenGenerator.new(:size => 5).new_token.length
    assert_equal 80, HasToken::TokenGenerator.new(:size => 80).new_token.length
  end
  
  def test_new_token_chars
    assert_match /a+/, HasToken::TokenGenerator.new(:chars => "a").new_token
  end
  
  def test_no_more_tokens_exception
    MockModel.new("a")
    assert_raise HasToken::TokenGenerator::NoMoreTokens do 
      HasToken::TokenGenerator.new(:chars => "a", :size => 1).before_create((model = MockModel.new))
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
da-has_token-1.0.4 test/has_token_test.rb
da-has_token-1.0.2 test/has_token_test.rb
da-has_token-1.0.1 test/has_token_test.rb
da-has_token-1.0.0 test/has_token_test.rb