Sha256: 5bc37fd28b7938366d63e4ec625ad5be3ba72e5220ea677d9a3e69b47fb1271e

Contents?: true

Size: 1.36 KB

Versions: 36

Compression:

Stored size: 1.36 KB

Contents

require 'test_helper'

class CassandraObject::AttributeMethods::DirtyTest < CassandraObject::TestCase
  test 'save clears dirty' do
    record = temp_object do
      string :name
    end.new name: 'foo'
    
    assert record.changed?

    record.save!

    assert !record.changed?
  end

  test 'reload clears dirty' do
    record = temp_object do
      string :name
    end.create! name: 'foo'

    record.name = 'bar'
    assert record.changed?

    record.reload

    assert !record.changed?
  end

  test 'typecast float before dirty check' do
    record = temp_object do
      float :price
    end.create(price: 5.01)

    record.price = '5.01'
    assert !record.changed?

    record.price = '7.12'
    assert record.changed?
  end

  test 'typecast boolean before dirty check' do
    record = temp_object do
      boolean :awesome
    end.create(awesome: false)
    
    record.awesome = false
    assert !record.changed?

    record.awesome = true
    assert record.changed?
  end

  test 'write_attribute' do
    object = temp_object do
      string :name
    end

    expected = {"name"=>[nil, "foo"]}

    object.new.tap do |record|
      record.name = 'foo'
      assert_equal expected, record.changes
    end

    object.new.tap do |record|
      record[:name] = 'foo'
      # record.write_attribute(:name, 'foo')
      assert_equal expected, record.changes
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
gotime-cassandra_object-4.5.1 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.5.0 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.4.5 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.4.4 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.4.3 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.4.0 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.3.2 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.3.1 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.3.0 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.2.2 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.2.0 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.1.0 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.0.2 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.0.1 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-4.0.0 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-3.0.5 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-3.0.4 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-3.0.3 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-3.0.2 test/unit/attribute_methods/dirty_test.rb
gotime-cassandra_object-3.0.1 test/unit/attribute_methods/dirty_test.rb