| 190 | | |
|---|
| | 190 | |
|---|
| | 191 | |
|---|
| | 192 | def test_remove_from_list_should_then_fail_in_list? |
|---|
| | 193 | assert_equal true, ListMixin.find(1).in_list? |
|---|
| | 194 | ListMixin.find(1).remove_from_list |
|---|
| | 195 | assert_equal false, ListMixin.find(1).in_list? |
|---|
| | 196 | end |
|---|
| | 197 | |
|---|
| | 198 | def test_remove_from_list_should_set_position_to_nil |
|---|
| | 199 | assert_equal [1, 2, 3, 4], ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos').map(&:id) |
|---|
| | 200 | |
|---|
| | 201 | ListMixin.find(2).remove_from_list |
|---|
| | 202 | |
|---|
| | 203 | assert_equal [2, 1, 3, 4], ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos').map(&:id) |
|---|
| | 204 | |
|---|
| | 205 | assert_equal 1, ListMixin.find(1).pos |
|---|
| | 206 | assert_equal nil, ListMixin.find(2).pos |
|---|
| | 207 | assert_equal 2, ListMixin.find(3).pos |
|---|
| | 208 | assert_equal 3, ListMixin.find(4).pos |
|---|
| | 209 | end |
|---|
| | 210 | |
|---|
| | 211 | def test_remove_before_destroy_does_not_shift_lower_items_twice |
|---|
| | 212 | assert_equal [1, 2, 3, 4], ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos').map(&:id) |
|---|
| | 213 | |
|---|
| | 214 | ListMixin.find(2).remove_from_list |
|---|
| | 215 | ListMixin.find(2).destroy |
|---|
| | 216 | |
|---|
| | 217 | assert_equal [1, 3, 4], ListMixin.find(:all, :conditions => 'parent_id = 5', :order => 'pos').map(&:id) |
|---|
| | 218 | |
|---|
| | 219 | assert_equal 1, ListMixin.find(1).pos |
|---|
| | 220 | assert_equal 2, ListMixin.find(3).pos |
|---|
| | 221 | assert_equal 3, ListMixin.find(4).pos |
|---|
| | 222 | end |
|---|
| | 223 | |
|---|