Source

						public function testDocumentSorting() {
		$model = $this->_model;
		$model::config(array('connection' => 'lithium_mongo_test', 'source' => 'ordered_docs'));

		$model::create(array('title' => 'Third document',  'position' => 3))->save();
		$model::create(array('title' => 'First document',  'position' => 1))->save();
		$model::create(array('title' => 'Second document', 'position' => 2))->save();

		$documents = $model::all(array('order' => 'position'));

		$this->assertEqual('First document', $documents[0]->title);
		$this->assertEqual('Second document', $documents[1]->title);
		$this->assertEqual('Third document', $documents[2]->title);

		$documents = $model::all(array('order' => array('position' => 'asc')));

		$this->assertEqual('First document', $documents[0]->title);
		$this->assertEqual('Second document', $documents[1]->title);
		$this->assertEqual('Third document', $documents[2]->title);

		$copy = $model::all(array('order' => array('position')));
		$this->assertIdentical($documents->data(), $copy->data());

		$documents = $model::all(array('order' => array('position' => 'desc')));

		$this->assertEqual('Third document', $documents[0]->title);
		$this->assertEqual('Second document', $documents[1]->title);
		$this->assertEqual('First document', $documents[2]->title);

		$list = $model::find('list');
		$this->assertEqual(3, count($list));

		foreach ($list as $id => $title) {
			$this->assertTrue(is_string($id));
			$this->assertPattern('/^[a-f0-9]{24}$/', $id);
			$this->assertNull($title);
		}
		$model::config(array('title' => 'title'));

		$list = $model::find('list');
		$this->assertEqual(3, count($list));

		foreach ($list as $id => $title) {
			$this->assertTrue(is_string($id));
			$this->assertPattern('/^[a-f0-9]{24}$/', $id);
			$this->assertPattern('/^(First|Second|Third) document$/', $title);
		}

		foreach ($documents as $i => $doc) {
			$this->assertTrue($doc->delete());
		}
	}