Sha256: b7545288508d88187ca327a6a2f5d5e56dd10c34aae4d8b43741cbd8f0b945af

Contents?: true

Size: 1.03 KB

Versions: 3

Compression:

Stored size: 1.03 KB

Contents

require 'rubygems'
require 'test/unit'
require 'shoulda'
begin
  require 'redgreen'
rescue LoadError
end

$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
$LOAD_PATH.unshift(File.dirname(__FILE__))
require 'bitmask-attribute'
require File.dirname(__FILE__) + '/../rails/init'

# Pseudo model for testing purposes
class CleanCampaign
  include BitmaskAttribute
  bitmask :medium, :as => [:web, :print, :email, :phone]
  bitmask :misc, :as => %w(some useless values) do
    def worked?
      true
    end
  end
  bitmask :Legacy, :as => [:upper, :case]
end

class Test::Unit::TestCase
  
  def assert_unsupported(&block)
    assert_raises(ArgumentError, &block)
  end

  def assert_stored(record, *values)
    values.each do |value|
      assert record.medium.any? { |v| v.to_s == value.to_s }, "Values #{record.medium.inspect} does not include #{value.inspect}"
    end
    full_mask = values.inject(0) do |mask, value|
      mask | Campaign.bitmasks[:medium][value]
    end
    assert_equal full_mask, record.medium.to_i
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
clean-bitmask-attribute-2.0.3 test/clean_test_helper.rb
clean-bitmask-attribute-2.0.1 test/clean_test_helper.rb
clean-bitmask-attribute-2.0.0 test/clean_test_helper.rb