Sha256: 59321b89240cf2296a742332abfebde51e1f32048d32e89173b427eb415a3f15

Contents?: true

Size: 1.81 KB

Versions: 32

Compression:

Stored size: 1.81 KB

Contents

require 'test_helper'

class CassandraObject::PersistenceTest < CassandraObject::TestCase
  test 'persistance inquiries' do
    issue = Issue.new
    assert issue.new_record?
    assert !issue.persisted?

    issue.save
    assert issue.persisted?
    assert !issue.new_record?
  end

  test 'save' do
    issue = Issue.new
    issue.save

    assert_equal issue, Issue.find(issue.id)
  end

  test 'save!' do
    begin
      Issue.validates(:description, presence: true)

      issue = Issue.new(description: 'bad')
      issue.save!

      issue = Issue.new
      assert_raise(CassandraObject::RecordInvalid) { issue.save! }
    ensure
      Issue.reset_callbacks(:validate)
    end
  end

  test 'destroy' do
    issue = Issue.create
    issue.destroy
 
    assert issue.destroyed?
    assert !issue.persisted?
    assert !issue.new_record?
  end

  test 'update_attribute' do
    issue = Issue.create
    issue.update_attribute(:description, 'lol')

    assert !issue.changed?
    assert_equal 'lol', issue.description
  end
  
  test 'update_attributes' do
    issue = Issue.create
    issue.update_attributes(description: 'lol')

    assert !issue.changed?
    assert_equal 'lol', issue.description
  end

  test 'update_attributes!' do
    begin
      Issue.validates(:description, presence: true)

      issue = Issue.new(description: 'bad')
      issue.save!
      
      assert_raise CassandraObject::RecordInvalid do
        issue.update_attributes! description: ''
      end
    ensure
      Issue.reset_callbacks(:validate)
    end
  end

  test 'reload' do
    persisted_issue = Issue.create
    fresh_issue = Issue.find(persisted_issue.id)
    fresh_issue.update_attribute(:description, 'say what')

    assert_nil persisted_issue.description
    persisted_issue.reload
    assert_equal 'say what', persisted_issue.description
  end
end

Version data entries

32 entries across 32 versions & 2 rubygems

Version Path
gotime-cassandra_object-2.7.8 test/persistence_test.rb
gotime-cassandra_object-2.7.7 test/persistence_test.rb
gotime-cassandra_object-2.7.6 test/persistence_test.rb
gotime-cassandra_object-2.7.5 test/persistence_test.rb
gotime-cassandra_object-2.7.4 test/persistence_test.rb
gotime-cassandra_object-2.7.3 test/persistence_test.rb
gotime-cassandra_object-2.7.2 test/persistence_test.rb
gotime-cassandra_object-2.7.1 test/persistence_test.rb
gotime-cassandra_object-2.7.0 test/persistence_test.rb
gotime-cassandra_object-2.6.4 test/persistence_test.rb
gotime-cassandra_object-2.6.3 test/persistence_test.rb
gotime-cassandra_object-2.6.2 test/persistence_test.rb
gotime-cassandra_object-2.6.1 test/persistence_test.rb
gotime-cassandra_object-2.6.0 test/persistence_test.rb
gotime-cassandra_object-2.5.0 test/persistence_test.rb
gotime-cassandra_object-2.4.2 test/persistence_test.rb
gotime-cassandra_object-2.4.1 test/persistence_test.rb
gotime-cassandra_object-2.4.0 test/persistence_test.rb
gotime-cassandra_object-2.3.6 test/persistence_test.rb
gotime-cassandra_object-2.3.5 test/persistence_test.rb