Commit: 008f1543de1c523cb239f3b55181dd03fb06aecf

Author: alkemann | Date: 2009-11-19 03:44:40 +0100
seperate mocks for `Paste` & `PasteView`. Tests for `PasteView`
diff --git a/tests/cases/models/PasteTest.php b/tests/cases/models/PasteTest.php index 32dd60a..ffc9259 100644 --- a/tests/cases/models/PasteTest.php +++ b/tests/cases/models/PasteTest.php @@ -2,34 +2,7 @@ namespace app\tests\cases\models; -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(); - - public function classes() { - return $this->_classes; - } - - public static function &mockParse(&$doc) { - if (!($doc instanceof \lithium\data\model\Document)) { - return null; - } - $doc->parsed = 'PARSED'; - return $doc; - } -} - +use \app\tests\mocks\MockPaste; class PasteTest extends \lithium\test\Unit { public function testUsesDocument() { @@ -174,29 +147,7 @@ class PasteTest extends \lithium\test\Unit { $result = $paste->errors->data(); $this->assertEqual($expected, $result); } - /* - public function testApplyingFilter() { - MockPaste::applyFilter('save', function($self, $params, $chain) { - $document = $params['record']; - if ($document->language != 'text' && - in_array($document->language, MockPaste::$languages)) { - $document = MockPaste::mockParse($document); - } - return $document ; - }); - $data = array( - 'content' => 'echo $this->function("lol");', - 'author' => 'TomGood', - 'language' => 'php' - ); - $paste = MockPaste::create($data); - $result = $paste->save(); - - $expected = 'PARSED'; - $this->assertEqual($expected, $result->parsed); - } - */ public function testGeShiFilter() { MockPaste::applyFilter('save', function($self, $params, $chain) { $document = $params['record']; @@ -223,4 +174,4 @@ class PasteTest extends \lithium\test\Unit { } -?> +?> \ No newline at end of file diff --git a/tests/cases/models/PasteViewTest.php b/tests/cases/models/PasteViewTest.php new file mode 100644 index 0000000..bd74035 --- /dev/null +++ b/tests/cases/models/PasteViewTest.php @@ -0,0 +1,57 @@ +<?php + +namespace app\tests\cases\models; + +use \app\tests\mocks\MockPaste; +use \app\tests\mocks\MockPasteView; + +class PasteViewTest extends \lithium\test\Unit { + + + + public function testCreate() { + $view = MockPasteView::create(); + + $result = $view instanceof \lithium\data\model\Document; + $this->assertTrue($result); + $this->skipIf(!$result, 'Not a Document result'); + + $expected = '_design/latest'; + $result = $view->id; + $this->assertEqual($expected, $result); + + $this->assertFalse(is_null($view->language)); + $this->assertFalse(is_null($view->views)); + } + + public function testCreateLatest() { + $view = MockPasteView::create('latest'); + + $result = $view instanceof \lithium\data\model\Document; + $this->assertTrue($result); + $this->skipIf(!$result, 'Not a Document result'); + + $expected = '_design/latest'; + $result = $view->id; + $this->assertEqual($expected, $result); + + $expected = 'javascript'; + $result = $view->language; + $this->assertEqual($expected, $result); + + $expected = array('all' => array( +'map' => 'function(doc) { + if (doc.permanent == "1") { + emit(doc.created, { + author: doc.author, language: doc.language, + preview: doc.preview, created: doc.created + }); + } +}' + )); + $result = $view->views->data(); + $this->assertEqual($expected, $result); + } +} + +?> \ No newline at end of file diff --git a/tests/integration/PasteTest.php b/tests/integration/PasteTest.php index 6e8ca57..1959d07 100644 --- a/tests/integration/PasteTest.php +++ b/tests/integration/PasteTest.php @@ -188,19 +188,7 @@ class PasteTest extends \lithium\test\Unit { public function testLatestView() { $this->setUpTasks(array('PutTable','FillTableFull')); - MockPaste::applyFilter('find', function($self, $params, $chain) { - if ($params['options']['conditions']['design'] = 'latest') { - $conditions = $params['options']['conditions']; - $result = $chain->next($self, $params, $chain); - if ($result === null) { - MockPaste::create(array('design' => 'latest'))->save(); - return null; //MockPaste::find('all', $conditions); - } - return $result; - } else { - return $chain->next($self, $params, $chain); - } - }); + $latest = MockPaste::find('all', array('conditions'=> array( 'design' => 'latest', 'view' => 'all', diff --git a/tests/mocks/MockPaste.php b/tests/mocks/MockPaste.php new file mode 100644 index 0000000..287359f --- /dev/null +++ b/tests/mocks/MockPaste.php @@ -0,0 +1,33 @@ +<?php + +namespace app\tests\mocks; + +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(); + + public function classes() { + return $this->_classes; + } + + public static function &mockParse(&$doc) { + if (!($doc instanceof \lithium\data\model\Document)) { + return null; + } + $doc->parsed = 'PARSED'; + return $doc; + } +} + +?> \ No newline at end of file diff --git a/tests/mocks/MockPasteView.php b/tests/mocks/MockPasteView.php new file mode 100644 index 0000000..ff0660f --- /dev/null +++ b/tests/mocks/MockPasteView.php @@ -0,0 +1,26 @@ +<?php + +namespace app\tests\mocks; + +class MockPasteView extends \app\models\PasteView { + + /** + * @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(); + + public function classes() { + return $this->_classes; + } + +} + +?> \ No newline at end of file