Doctrine::getTable('SortableArticle')->createQuery()->delete()->execute();
$a1 = new SortableArticle();
$a1->name = 'First Article';
$a1->save();
$a2 = new SortableArticle();
$a2->name = 'Second Article';
$a2->save();
$a3 = new SortableArticle();
$a3->name = 'Third Article';
$a3->save();
$t->info('Assert articles have thecorrect position');
$t->is($a1['position'], 1, 'First item saved has position of 1');
$t->is($a2['position'], 2, 'Second item saved has position of 2');
$t->is($a3['position'], 3, 'Third item saved has position of 3');
$t->info('Test Demote and Promote');
$a1->demote();
doctrine_refresh($a2);
$t->is($a1['position'], 2, 'First item now has position of 2');
$t->is($a2['position'], 1, 'Second item now has position of 1');
$a3->promote();
doctrine_refresh($a1);
$t->is($a1['position'], 3, 'First item now has position of 3');
$t->is($a3['position'], 2, 'Third item now has position of 2');
$t->info('Test Table Method "sort()"');
$table = $a1->getTable();
$sort = array($a1['id'], $a2['id'], $a3['id']);
$table->sort($sort);
$t->comment('Sort to original position (before promote/demote)');
$articles = $table->findAllSorted();
$t->is($articles->count(), 3, 'Three articles returned for "findAllSorted()" method');
$t->is($articles[0]['id'], $a1['id'], 'First item is now first');
    $a2->name = 'Second Article';
    $a2->save();

    $a3 = new SortableArticle();
    $a3->name = 'Third Article';
    $a3->save();

$t->info('Assert articles have thecorrect position');

    $t->is($a1['position'], 1, 'First item saved has position of 1');
    $t->is($a2['position'], 2, 'Second item saved has position of 2');
    $t->is($a3['position'], 3, 'Third item saved has position of 3');

$t->info('Test Demote and Promote');

    $a1->demote(); doctrine_refresh($a2);
    $t->is($a1['position'], 2, 'First item now has position of 2');
    $t->is($a2['position'], 1, 'Second item now has position of 1');

    $a3->promote(); doctrine_refresh($a1);
    $t->is($a1['position'], 3, 'First item now has position of 3');
    $t->is($a3['position'], 2, 'Third item now has position of 2');

$t->info('Test Table Method "sort()"');

    $table = $a1->getTable();
    $sort = array($a1['id'], $a2['id'], $a3['id']);
    $table->sort($sort);
    
    $t->comment('Sort to original position (before promote/demote)');
    $articles = $table->findAllSorted();