Module: ActiveRecord::FindByExtension::Etest

Defined in:
lib/vex/active_record/find_by_extension.rb,
lib/vex/active_record/resolver.rb

Defined Under Namespace

Classes: Data

Instance Method Summary collapse

Instance Method Details

#setupObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/vex/active_record/find_by_extension.rb', line 28

def setup
  Data.lite_table do
    string :name
    string :age
  end

  Data.create! :name => "name", :age => 2
  Data.create! :name => "name", :age => 3
  Data.create! :name => "name", :age => 4
  Data.create! :name => "name2", :age => 2
  Data.create! :name => "name2", :age => 3
  Data.create! :name => "name2", :age => 4

  assert_equal(6, Data.count)
end

#teardownObject



44
45
46
# File 'lib/vex/active_record/find_by_extension.rb', line 44

def teardown
  Data.destroy_all
end

#test_find_all_byObject



48
49
50
51
52
53
54
55
56
57
# File 'lib/vex/active_record/find_by_extension.rb', line 48

def test_find_all_by
  assert_equal(3, Data.find_all_by(:name => "name").length)
  assert_equal(3, Data.find_all_by(:name => [ "name" ]).length)
  assert_raise(ActiveRecord::StatementInvalid) {
    assert_equal(3, Data.find_all_by(:unknown => [ "name" ]).length)
  }

  assert_equal(2, Data.find_all_by(:name => [ "name" ], :age => [1, 2, 3]).length)
  assert_equal(2, Data.find_all_by({:name => [ "name" ]}, :conditions => { :age => [1, 2, 3]}).length)
end

#test_find_byObject



59
60
61
62
# File 'lib/vex/active_record/find_by_extension.rb', line 59

def test_find_by
  assert_equal("name", Data.find_by(:name => "name").name)
  assert_equal(nil, Data.find_by(:name => "namex"))
end

#test_find_by!Object



64
65
66
67
68
69
# File 'lib/vex/active_record/find_by_extension.rb', line 64

def test_find_by!
  assert_equal("name", Data.find_by!(:name => "name").name)
  assert_raise(ActiveRecord::RecordNotFound) do
    Data.find_by!(:name => "namex")
  end
end

#test_resolveObject



40
41
42
43
44
45
46
47
48
# File 'lib/vex/active_record/resolver.rb', line 40

def test_resolve
  data2 = Data.find_by :name => "name", :age => 2
  data3 = Data.find_by :name => "name", :age => 3

  assert_equal data2, Data.resolve(data2)
  assert_equal data2, Data.resolve(data2.id)
  assert_equal data2, Data.resolve(data2.id.to_s)
  assert_equal [ data2, data3 ].sort_by(&:id), Data.resolve([data2.id, data3.id]).sort_by(&:id)
end