Sha256: 293071aac5d584b70047a5f8523a7f86e87d8c1616be618bee77f4fffba53d6f
Contents?: true
Size: 1.58 KB
Versions: 3
Compression:
Stored size: 1.58 KB
Contents
require 'rubygems' require 'test/unit' require 'shoulda' require 'active_support' require 'active_support/core_ext/object' require 'active_record' begin require 'redgreen' require 'active_support/hash_with_indifferent_access' 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' # ActiveRecord::Base.logger = Logger.new(STDOUT) ActiveRecord::Base.establish_connection( :adapter => 'sqlite3', :database => ':memory:' ) ActiveRecord::Schema.define do create_table :campaigns do |t| t.integer :company_id t.integer :medium, :misc, :Legacy end create_table :companies do |t| t.string :name end end class Company < ActiveRecord::Base has_many :campaigns end # Pseudo model for testing purposes class Campaign < ActiveRecord::Base belongs_to :company 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/test_helper.rb |
clean-bitmask-attribute-2.0.1 | test/test_helper.rb |
clean-bitmask-attribute-2.0.0 | test/test_helper.rb |