Sha256: 863a6375ee5e7dec99d0d81ca4c569762fb6d8f3eade60bd1854b7ab0cbdbe9d

Contents?: true

Size: 1.4 KB

Versions: 10

Compression:

Stored size: 1.4 KB

Contents

require "cases/helper"

class Mixin < ActiveRecord::Base
end

class TouchTest < ActiveRecord::TestCase
  fixtures :mixins

  setup do
    travel_to Time.now
  end

  teardown do
    travel_back
  end

  def test_update
    stamped = Mixin.new

    assert_nil stamped.updated_at
    assert_nil stamped.created_at
    stamped.save
    assert_equal Time.now, stamped.updated_at
    assert_equal Time.now, stamped.created_at
  end

  def test_create
    obj = Mixin.create
    assert_equal Time.now, obj.updated_at
    assert_equal Time.now, obj.created_at
  end

  def test_many_updates
    stamped = Mixin.new

    assert_nil stamped.updated_at
    assert_nil stamped.created_at
    stamped.save
    assert_equal Time.now, stamped.created_at
    assert_equal Time.now, stamped.updated_at

    old_updated_at = stamped.updated_at

    travel 5.minutes do
      stamped.lft_will_change!
      stamped.save

      assert_equal Time.now, stamped.updated_at
      assert_equal old_updated_at, stamped.created_at
    end
  end

  def test_create_turned_off
    Mixin.record_timestamps = false

    mixin = Mixin.new

    assert_nil mixin.updated_at
    mixin.save
    assert_nil mixin.updated_at

  # Make sure Mixin.record_timestamps gets reset, even if this test fails,
  # so that other tests do not fail because Mixin.record_timestamps == false
  rescue Exception => e
    raise e
  ensure
    Mixin.record_timestamps = true
  end

end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
ibm_db-3.0.4-x86-mingw32 test/cases/mixin_test.rb
ibm_db-3.0.4 test/cases/mixin_test.rb
ibm_db-3.0.3-x86-mingw32 test/cases/mixin_test.rb
ibm_db-3.0.3 test/cases/mixin_test.rb
ibm_db-3.0.2-x86-mingw32 test/cases/mixin_test.rb
ibm_db-3.0.2 test/cases/mixin_test.rb
activejob-lock-0.0.2 rails/activerecord/test/cases/mixin_test.rb
ibm_db-3.0.1 test/cases/mixin_test.rb
ibm_db-3.0.1-x86-mingw32 test/cases/mixin_test.rb
activejob-lock-0.0.1 rails/activerecord/test/cases/mixin_test.rb