Methods
T
Instance Public methods
test_delete_middle()
# File rails/activerecord/test/mixin_test.rb, line 172
def test_delete_middle
  assert_equal [mixins(:list_1),
                mixins(:list_2),
                mixins(:list_3),
                mixins(:list_4)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

  mixins(:list_2).destroy

  assert_equal [mixins(:list_1, :reload),
                mixins(:list_3, :reload),
                mixins(:list_4, :reload)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

  assert_equal 1, mixins(:list_1).pos
  assert_equal 2, mixins(:list_3).pos
  assert_equal 3, mixins(:list_4).pos

  mixins(:list_1).destroy

  assert_equal [mixins(:list_3, :reload),
                mixins(:list_4, :reload)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

  assert_equal 1, mixins(:list_3).pos
  assert_equal 2, mixins(:list_4).pos

end
test_injection()
# File rails/activerecord/test/mixin_test.rb, line 109
def test_injection
  item = ListMixin.new("parent_id"=>1)
  assert_equal "parent_id = 1", item.scope_condition
  assert_equal "pos", item.position_column
end
test_insert()
# File rails/activerecord/test/mixin_test.rb, line 115
def test_insert
  new = ListMixin.create("parent_id"=>20)
  assert_equal 1, new.pos
  assert new.first?
  assert new.last?

  new = ListMixin.create("parent_id"=>20)
  assert_equal 2, new.pos
  assert !new.first?
  assert new.last?

  new = ListMixin.create("parent_id"=>20)
  assert_equal 3, new.pos
  assert !new.first?
  assert new.last?

  new = ListMixin.create("parent_id"=>0)
  assert_equal 1, new.pos
  assert new.first?
  assert new.last?
end
test_insert_at()
# File rails/activerecord/test/mixin_test.rb, line 137
def test_insert_at
  new = ListMixin.create("parent_id" => 20)
  assert_equal 1, new.pos

  new = ListMixin.create("parent_id" => 20)
  assert_equal 2, new.pos

  new = ListMixin.create("parent_id" => 20)
  assert_equal 3, new.pos

  new4 = ListMixin.create("parent_id" => 20)
  assert_equal 4, new4.pos

  new4.insert_at(3)
  assert_equal 3, new4.pos

  new.reload
  assert_equal 4, new.pos

  new.insert_at(2)
  assert_equal 2, new.pos

  new4.reload
  assert_equal 4, new4.pos

  new5 = ListMixin.create("parent_id" => 20)
  assert_equal 5, new5.pos

  new5.insert_at(1)
  assert_equal 1, new5.pos

  new4.reload
  assert_equal 5, new4.pos
end
test_move_to_bottom_with_next_to_last_item()
# File rails/activerecord/test/mixin_test.rb, line 85
def test_move_to_bottom_with_next_to_last_item
  assert_equal [mixins(:list_1),
                mixins(:list_2),
                mixins(:list_3),
                mixins(:list_4)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

  mixins(:list_3).move_to_bottom

  assert_equal [mixins(:list_1),
                mixins(:list_2),
                mixins(:list_4),
                mixins(:list_3)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')
end
test_next_prev()
# File rails/activerecord/test/mixin_test.rb, line 101
def test_next_prev
  assert_equal mixins(:list_2), mixins(:list_1).lower_item
  assert_nil mixins(:list_1).higher_item
  assert_equal mixins(:list_3), mixins(:list_4).higher_item
  assert_nil mixins(:list_4).lower_item
end
test_nil_scope()
# File rails/activerecord/test/mixin_test.rb, line 208
def test_nil_scope
  new1, new2, new3 = ListMixin.create, ListMixin.create, ListMixin.create
  new2.move_higher
  assert_equal [new2, new1, new3], ListMixin.find(:all, :conditions => 'parent_id IS NULL', :order => 'pos')
end
test_remove_before_destroy_does_not_shift_lower_items_twice()
# File rails/activerecord/test/mixin_test.rb, line 241
def test_remove_before_destroy_does_not_shift_lower_items_twice
  assert_equal [mixins(:list_1),
                mixins(:list_2),
                mixins(:list_3),
                mixins(:list_4)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

  mixins(:list_2).remove_from_list
  mixins(:list_2).destroy

assert_equal [mixins(:list_1, :reload),
              mixins(:list_3, :reload),
              mixins(:list_4, :reload)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

  assert_equal 1, mixins(:list_1).pos
  assert_equal 2, mixins(:list_3).pos
  assert_equal 3, mixins(:list_4).pos
end
test_remove_from_list_should_set_position_to_nil()
# File rails/activerecord/test/mixin_test.rb, line 220
def test_remove_from_list_should_set_position_to_nil
  assert_equal [mixins(:list_1),
                mixins(:list_2),
                mixins(:list_3),
                mixins(:list_4)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

  mixins(:list_2).remove_from_list

  assert_equal [mixins(:list_2, :reload),
                mixins(:list_1, :reload),
                mixins(:list_3, :reload),
                mixins(:list_4, :reload)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

  assert_equal 1, mixins(:list_1).pos
  assert_equal nil, mixins(:list_2).pos
  assert_equal 2, mixins(:list_3).pos
  assert_equal 3, mixins(:list_4).pos
end
test_remove_from_list_should_then_fail_in_list?()
# File rails/activerecord/test/mixin_test.rb, line 214
def test_remove_from_list_should_then_fail_in_list?
  assert_equal true, mixins(:list_1).in_list?
  mixins(:list_1).remove_from_list
  assert_equal false, mixins(:list_1).in_list?
end
test_reordering()
# File rails/activerecord/test/mixin_test.rb, line 27
def test_reordering
  assert_equal [mixins(:list_1),
                mixins(:list_2),
                mixins(:list_3),
                mixins(:list_4)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

  mixins(:list_2).move_lower

  assert_equal [mixins(:list_1),
                mixins(:list_3),
                mixins(:list_2),
                mixins(:list_4)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

  mixins(:list_2).move_higher

  assert_equal [mixins(:list_1),
                mixins(:list_2),
                mixins(:list_3),
                mixins(:list_4)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

  mixins(:list_1).move_to_bottom

  assert_equal [mixins(:list_2),
                mixins(:list_3),
                mixins(:list_4),
                mixins(:list_1)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

  mixins(:list_1).move_to_top

  assert_equal [mixins(:list_1),
                mixins(:list_2),
                mixins(:list_3),
                mixins(:list_4)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')


  mixins(:list_2).move_to_bottom

  assert_equal [mixins(:list_1),
                mixins(:list_3),
                mixins(:list_4),
                mixins(:list_2)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

  mixins(:list_4).move_to_top

  assert_equal [mixins(:list_4),
                mixins(:list_1),
                mixins(:list_3),
                mixins(:list_2)],
                ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos')

end
test_with_string_based_scope()
# File rails/activerecord/test/mixin_test.rb, line 201
def test_with_string_based_scope
  new = ListWithStringScopeMixin.create("parent_id"=>500)
  assert_equal 1, new.pos
  assert new.first?
  assert new.last?
end