Sha256: bc1b5272700c1a24fdda43e83b151617d526d9f6e183b5cef317e71692a23c1c

Contents?: true

Size: 1.57 KB

Versions: 2

Compression:

Stored size: 1.57 KB

Contents

# encoding: UTF-8

require File.expand_path("./helper", File.dirname(__FILE__))

class Person < Ohm::Model
  include Ohm::SoftDelete

  attribute :name
  index :name

  attribute :age
  index :age
end

test "deleted?" do
  person = Person.create

  assert !person.deleted?

  person.delete

  assert person.deleted?
end

test "all excludes deleted records" do
  person = Person.create(:name => "matz")

  assert Person.all.first == person

  person.delete

  assert Person.all.empty?
end

test "find does not exclude deleted records" do
  person = Person.create(:name => "matz")

  assert Person.find(:name => "matz").first == person

  person.delete

  assert Person.find(:name => "matz").include?(person)
  assert Person.all.find(:name => "matz").include?(person)
end

test "find with many criteria excludes deleted records" do
  person = Person.create(:name => "matz", :age => 38)

  assert Person.find(:name => "matz", :age => 38).first == person

  person.delete

  assert Person.find(:name => "matz", :age => 38).empty?
  assert Person.all.find(:name => "matz", :age => 38).empty?
end

test "exists? returns true for deleted records" do
  person = Person.create(:name => "matz")

  person.delete

  assert Person.exists?(person.id)
end

test "Model[n] can be used to retrieve deleted records" do
  person = Person.create(:name => "matz")

  person.delete

  assert Person[person.id].deleted?
  assert Person[person.id].name == "matz"
end

test "restoring" do
  person = Person.create(:name => "matz")
  person.delete

  assert Person.all.empty?

  person.restore
  assert Person.all.include?(person)
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ohm-contrib-1.0.rc1 test/soft_delete.rb
ohm-contrib-1.0.rc0 test/soft_delete.rb