Commit: 725e50ecf73a92aec06fb2d7b485d6377f856fc8
Author: alkemann | Date: 2009-11-17 06:08:44 +0100
diff --git a/tests/integration/PasteTest.php b/tests/integration/PasteTest.php
new file mode 100644
index 0000000..7889ee0
--- /dev/null
+++ b/tests/integration/PasteTest.php
@@ -0,0 +1,242 @@
+<?php
+
+namespace app\tests\integrations;
+
+use \lithium\data\Connections;
+use \lithium\data\model\Query;
+
+class MockPaste extends \app\models\Paste {
+
+ /**
+ * @todo remove when Model problem with adapter is fixed in core
+ */
+ protected $_classes = array(
+ 'query' => '\lithium\data\model\Query',
+ 'record' => '\lithium\data\model\Document',
+ 'validator' => '\lithium\util\Validator',
+ 'recordSet' => '\lithium\data\model\Document',
+ 'connections' => '\lithium\data\Connections'
+ );
+
+ protected $_meta = array(
+ 'key' => '_id',
+ 'source' => 'test_pastes',
+ 'connection' => 'test'
+ );
+
+ public function classes() {
+ return $this->_classes;
+ }
+}
+
+
+class PasteTest extends \lithium\test\Unit {
+
+ public function setUpTasks($setUpTasks) {
+ foreach ($setUpTasks as $task) {
+ $this->{'_task'.$task}();
+ }
+ }
+
+ public function tearDownTasks($tearDownTasks) {
+ foreach ($tearDownTasks as $task) {
+ $this->{'_task'.$task}();
+ }
+ }
+
+ protected function _taskPutTable() {
+ Connections::get("test")->put('/test_pastes');
+ }
+
+ protected function _taskFillTableFull() {
+ $data = array(
+ '_id' => 'a1',
+ 'author' => 'alkemann',
+ 'created' => '2009-01-01 01:01:10',
+ 'language' => 'text',
+ 'content' => 'Lorem Ipsum',
+ 'parsed' => '',
+ 'permanent' => true,
+ 'remember' => false,
+ 'saved' => false
+ );
+ $paste = MockPaste::create($data);
+ $paste->save();
+ $data['_id'] = 'a2';
+ $data['created'] = '2009-01-01 01:01:02';
+ $paste = MockPaste::create($data);
+ $paste->save();
+ $data['_id'] = 'a3';
+ $data['created'] = '2009-01-01 01:01:04';
+ $paste = MockPaste::create($data);
+ $paste->save();
+ $data['_id'] = 'a4';
+ $data['created'] = '2009-01-01 01:01:03';
+ $paste = MockPaste::create($data);
+ $paste->save();
+ $data['_id'] = 'a5';
+ $data['created'] = '2009-01-01 01:01:05';
+ $paste = MockPaste::create($data);
+ $paste->save();
+ $data['_id'] = 'a6';
+ $data['permanent'] = false;
+ $data['created'] = '2009-01-01 01:01:07';
+ $paste = MockPaste::create($data);
+ $paste->save();
+ $data['permanent'] = true;
+ $data['_id'] = 'a7';
+ $data['created'] = '2009-01-01 01:01:11';
+ $paste = MockPaste::create($data);
+ $paste->save();
+ $data['_id'] = 'a8';
+ $data['created'] = '2009-01-01 01:01:13';
+ $paste = MockPaste::create($data);
+ $paste->save();
+ $data['_id'] = 'a9';
+ $data['created'] = '2009-01-01 01:01:06';
+ $paste = MockPaste::create($data);
+ $paste->save();
+ $data['permanent'] = false;
+ $data['_id'] = 'a10';
+ $data['created'] = '2009-01-01 01:01:09';
+ $paste = MockPaste::create($data);
+ $paste->save();
+ $data['permanent'] = true;
+ $data['_id'] = 'a11';
+ $data['created'] = '2009-01-01 01:01:08';
+ $paste = MockPaste::create($data);
+ $paste->save();
+ $data['_id'] = 'a12';
+ $data['created'] = '2009-01-01 01:01:12';
+ $paste = MockPaste::create($data);
+ $paste->save();
+ $data['_id'] = 'a13';
+ $data['created'] = '2009-01-01 01:01:01';
+ $paste = MockPaste::create($data);
+ $paste->save();
+ }
+
+ protected function _taskDeleteTable() {
+ Connections::get("test")->delete(new Query(
+ array('model' => '\app\tests\integrations\MockPaste')
+ ));
+ }
+
+ protected function _taskSaveOneRecord() {
+ $data = array(
+ '_id' => 'abcd1',
+ 'title' => 'Post',
+ 'content' => 'Lorem Ipsum',
+ 'author' => 'alkemann',
+ 'language' => 'text'
+ );
+ $paste = MockPaste::create($data);
+ $paste->save();
+ }
+
+ protected function _taskPutView() {
+ $paste = MockPaste::createView('latest')->save();
+ }
+
+ public function testSave() {
+ $this->setUpTasks(array('PutTable'));
+
+ $data = array(
+ 'title' => 'Post',
+ 'content' => 'Lorem Ipsum',
+ 'author' => 'alkemann',
+ 'language' => 'text'
+ );
+ $paste = MockPaste::create($data);
+ $result = $paste->save();
+
+ $this->assertTrue($result);
+
+ $this->setUpTasks(array('DeleteTable'));
+ }
+
+ public function testRead() {
+ $this->setUpTasks(array('PutTable','SaveOneRecord'));
+
+ $paste = MockPaste::find('abcd1');
+
+ $result = $paste->exists();
+ $this->assertTrue($result);
+
+ $document = $paste->next();
+ $data = $document->data();
+
+ $expected = array(
+ '_id','_rev','title','content',
+ 'author','language','parsed',
+ 'permanent','remember','created'
+ );
+ $result = array_keys($data);
+ $this->assertEqual($expected, $result);
+
+ $expected = 'alkemann';
+ $result = $document->author;
+ $this->assertEqual($expected, $result);
+
+ $this->setUpTasks(array('DeleteTable'));
+ }
+
+ public function testReadNotFound() {
+ $this->setUpTasks(array('PutTable'));
+
+ $result = MockPaste::find('abcd1');
+ $this->assertNull($result);
+
+ $this->setUpTasks(array('DeleteTable'));
+ }
+
+ public function testLatestView() {
+ $this->setUpTasks(array('PutTable','PutView','FillTableFull'));
+
+ $latest = MockPaste::find('all', array('conditions'=> array(
+ 'design' => 'latest',
+ 'view' => 'all',
+ 'limit' => '10',
+ 'descending' => 'true'
+ )));
+ $result = $latest instanceof \lithium\data\model\Document;
+
+ $this->assertTrue($result);
+ $this->skipIf(!$result, 'Not a document result');
+
+
+ $expected = 10;
+ $result = sizeof($latest->data());
+ $this->assertEqual($expected, $result);
+
+ $first = $latest->rewind();
+ $expected = 'a8';
+ $result = $first->_id;
+ $this->assertEqual($expected, $result);
+
+ $next = $latest->next();
+ $expected = 'a12';
+ $result = $next->_id;
+ $this->assertEqual($expected, $result);
+ $next = $latest->next();
+
+ $expected = 'a7';
+ $result = $next->_id;
+ $this->assertEqual($expected, $result);
+
+ $next = $latest->next();
+ $expected = 'a1';
+ $result = $next->_id;
+ $this->assertEqual($expected, $result);
+
+ $next = $latest->next();
+ $expected = 'a11';
+ $result = $next->_id;
+ $this->assertEqual($expected, $result);
+
+ $this->setUpTasks(array('DeleteTable'));
+ }
+
+}
+
+?>
\ No newline at end of file
diff --git a/tests/integrations/PasteTest.php b/tests/integrations/PasteTest.php
deleted file mode 100644
index 7889ee0..0000000
--- a/tests/integrations/PasteTest.php
+++ /dev/null
@@ -1,242 +0,0 @@
-<?php
-
-namespace app\tests\integrations;
-
-use \lithium\data\Connections;
-use \lithium\data\model\Query;
-
-class MockPaste extends \app\models\Paste {
-
- /**
- * @todo remove when Model problem with adapter is fixed in core
- */
- protected $_classes = array(
- 'query' => '\lithium\data\model\Query',
- 'record' => '\lithium\data\model\Document',
- 'validator' => '\lithium\util\Validator',
- 'recordSet' => '\lithium\data\model\Document',
- 'connections' => '\lithium\data\Connections'
- );
-
- protected $_meta = array(
- 'key' => '_id',
- 'source' => 'test_pastes',
- 'connection' => 'test'
- );
-
- public function classes() {
- return $this->_classes;
- }
-}
-
-
-class PasteTest extends \lithium\test\Unit {
-
- public function setUpTasks($setUpTasks) {
- foreach ($setUpTasks as $task) {
- $this->{'_task'.$task}();
- }
- }
-
- public function tearDownTasks($tearDownTasks) {
- foreach ($tearDownTasks as $task) {
- $this->{'_task'.$task}();
- }
- }
-
- protected function _taskPutTable() {
- Connections::get("test")->put('/test_pastes');
- }
-
- protected function _taskFillTableFull() {
- $data = array(
- '_id' => 'a1',
- 'author' => 'alkemann',
- 'created' => '2009-01-01 01:01:10',
- 'language' => 'text',
- 'content' => 'Lorem Ipsum',
- 'parsed' => '',
- 'permanent' => true,
- 'remember' => false,
- 'saved' => false
- );
- $paste = MockPaste::create($data);
- $paste->save();
- $data['_id'] = 'a2';
- $data['created'] = '2009-01-01 01:01:02';
- $paste = MockPaste::create($data);
- $paste->save();
- $data['_id'] = 'a3';
- $data['created'] = '2009-01-01 01:01:04';
- $paste = MockPaste::create($data);
- $paste->save();
- $data['_id'] = 'a4';
- $data['created'] = '2009-01-01 01:01:03';
- $paste = MockPaste::create($data);
- $paste->save();
- $data['_id'] = 'a5';
- $data['created'] = '2009-01-01 01:01:05';
- $paste = MockPaste::create($data);
- $paste->save();
- $data['_id'] = 'a6';
- $data['permanent'] = false;
- $data['created'] = '2009-01-01 01:01:07';
- $paste = MockPaste::create($data);
- $paste->save();
- $data['permanent'] = true;
- $data['_id'] = 'a7';
- $data['created'] = '2009-01-01 01:01:11';
- $paste = MockPaste::create($data);
- $paste->save();
- $data['_id'] = 'a8';
- $data['created'] = '2009-01-01 01:01:13';
- $paste = MockPaste::create($data);
- $paste->save();
- $data['_id'] = 'a9';
- $data['created'] = '2009-01-01 01:01:06';
- $paste = MockPaste::create($data);
- $paste->save();
- $data['permanent'] = false;
- $data['_id'] = 'a10';
- $data['created'] = '2009-01-01 01:01:09';
- $paste = MockPaste::create($data);
- $paste->save();
- $data['permanent'] = true;
- $data['_id'] = 'a11';
- $data['created'] = '2009-01-01 01:01:08';
- $paste = MockPaste::create($data);
- $paste->save();
- $data['_id'] = 'a12';
- $data['created'] = '2009-01-01 01:01:12';
- $paste = MockPaste::create($data);
- $paste->save();
- $data['_id'] = 'a13';
- $data['created'] = '2009-01-01 01:01:01';
- $paste = MockPaste::create($data);
- $paste->save();
- }
-
- protected function _taskDeleteTable() {
- Connections::get("test")->delete(new Query(
- array('model' => '\app\tests\integrations\MockPaste')
- ));
- }
-
- protected function _taskSaveOneRecord() {
- $data = array(
- '_id' => 'abcd1',
- 'title' => 'Post',
- 'content' => 'Lorem Ipsum',
- 'author' => 'alkemann',
- 'language' => 'text'
- );
- $paste = MockPaste::create($data);
- $paste->save();
- }
-
- protected function _taskPutView() {
- $paste = MockPaste::createView('latest')->save();
- }
-
- public function testSave() {
- $this->setUpTasks(array('PutTable'));
-
- $data = array(
- 'title' => 'Post',
- 'content' => 'Lorem Ipsum',
- 'author' => 'alkemann',
- 'language' => 'text'
- );
- $paste = MockPaste::create($data);
- $result = $paste->save();
-
- $this->assertTrue($result);
-
- $this->setUpTasks(array('DeleteTable'));
- }
-
- public function testRead() {
- $this->setUpTasks(array('PutTable','SaveOneRecord'));
-
- $paste = MockPaste::find('abcd1');
-
- $result = $paste->exists();
- $this->assertTrue($result);
-
- $document = $paste->next();
- $data = $document->data();
-
- $expected = array(
- '_id','_rev','title','content',
- 'author','language','parsed',
- 'permanent','remember','created'
- );
- $result = array_keys($data);
- $this->assertEqual($expected, $result);
-
- $expected = 'alkemann';
- $result = $document->author;
- $this->assertEqual($expected, $result);
-
- $this->setUpTasks(array('DeleteTable'));
- }
-
- public function testReadNotFound() {
- $this->setUpTasks(array('PutTable'));
-
- $result = MockPaste::find('abcd1');
- $this->assertNull($result);
-
- $this->setUpTasks(array('DeleteTable'));
- }
-
- public function testLatestView() {
- $this->setUpTasks(array('PutTable','PutView','FillTableFull'));
-
- $latest = MockPaste::find('all', array('conditions'=> array(
- 'design' => 'latest',
- 'view' => 'all',
- 'limit' => '10',
- 'descending' => 'true'
- )));
- $result = $latest instanceof \lithium\data\model\Document;
-
- $this->assertTrue($result);
- $this->skipIf(!$result, 'Not a document result');
-
-
- $expected = 10;
- $result = sizeof($latest->data());
- $this->assertEqual($expected, $result);
-
- $first = $latest->rewind();
- $expected = 'a8';
- $result = $first->_id;
- $this->assertEqual($expected, $result);
-
- $next = $latest->next();
- $expected = 'a12';
- $result = $next->_id;
- $this->assertEqual($expected, $result);
- $next = $latest->next();
-
- $expected = 'a7';
- $result = $next->_id;
- $this->assertEqual($expected, $result);
-
- $next = $latest->next();
- $expected = 'a1';
- $result = $next->_id;
- $this->assertEqual($expected, $result);
-
- $next = $latest->next();
- $expected = 'a11';
- $result = $next->_id;
- $this->assertEqual($expected, $result);
-
- $this->setUpTasks(array('DeleteTable'));
- }
-
-}
-
-?>
\ No newline at end of file