Sha256: 3e053daa99ec794e0ae0007e82125e787e775e06d458b6ac0d3b5e87de2c0f25

Contents?: true

Size: 1.59 KB

Versions: 19

Compression:

Stored size: 1.59 KB

Contents

require File.dirname(__FILE__) + '/test_helper'
require 'acts_methods'
require 'mocha'

class ActsMethodsTest < Test::Unit::TestCase
  class Model
    attr_accessor :birthdate
    
    def initialize(birthdate)
      @birthdate = birthdate
    end
    
    def self.configuration
      @configuration ||= {:solr_fields => {}}
    end

    def self.columns_hash=(columns_hash)
      @columns_hash = columns_hash
    end
    
    def self.columns_hash
      @columns_hash
    end
    
    def [](key)
      @birthday
    end
    
    self.extend ActsAsSolr::ActsMethods
  end
  
  
  context "when getting field values" do
    setup do
      Model.columns_hash = {"birthdate" => stub("column", :type => :date)}
      Model.send(:get_field_value, :birthdate)
    end
    
    should "define an accessor methods for a solr converted value" do
      assert Model.instance_methods.include?("birthdate_for_solr")
    end
    
    context "for date types" do
      setup do
        @model = Model.new(Date.today)
      end
      
      should "return nil when field is nil" do
        @model.birthdate = nil
        assert_nil @model.birthdate_for_solr
      end
      
      should "return the formatted date" do
        assert_equal Date.today.strftime("%Y-%m-%dT%H:%M:%SZ"), @model.birthdate_for_solr
      end
    end
    
    context "for timestamp types" do
      setup do
        @now = Time.now
        @model = Model.new(@now)
      end
      
      should "return a formatted timestamp string for timestamps" do
        assert_equal @now.utc.strftime("%Y-%m-%dT%H:%M:%SZ"), @model.birthdate_for_solr
      end
    end
  end
  
end

Version data entries

19 entries across 19 versions & 3 rubygems

Version Path
onemorecloud-websolr-rails-1.1.1 test/unit/acts_methods_shoulda.rb
onemorecloud-websolr-rails-1.3.3 test/unit/acts_methods_shoulda.rb
onemorecloud-websolr-rails-1.4.0 test/unit/acts_methods_shoulda.rb
onemorecloud-websolr-rails-1.4.1 test/unit/acts_methods_shoulda.rb
acts_as_solr-1.3.3 test/unit/acts_methods_shoulda.rb
acts_as_solr-1.3.2 test/unit/acts_methods_shoulda.rb
acts_as_solr-1.3.1 test/unit/acts_methods_shoulda.rb
acts_as_solr-1.3.0 test/unit/acts_methods_shoulda.rb
acts_as_solr-1.2.0 test/unit/acts_methods_shoulda.rb
acts_as_solr-1.1.3 test/unit/acts_methods_shoulda.rb
acts_as_solr-1.1.2 test/unit/acts_methods_shoulda.rb
acts_as_solr-1.1.1 test/unit/acts_methods_shoulda.rb
acts_as_solr-1.0.0 test/unit/acts_methods_shoulda.rb
onemorecloud-websolr-rails-1.4.6 test/unit/acts_methods_shoulda.rb
onemorecloud-websolr-rails-1.4.5 test/unit/acts_methods_shoulda.rb
onemorecloud-websolr-rails-1.4.4 test/unit/acts_methods_shoulda.rb
websolr-rails-1.4.4 test/unit/acts_methods_shoulda.rb
onemorecloud-websolr-rails-1.4.3 test/unit/acts_methods_shoulda.rb
websolr-rails-1.4.3 test/unit/acts_methods_shoulda.rb