Commit: 008f1543de1c523cb239f3b55181dd03fb06aecf
Author: alkemann | Date: 2009-11-19 03:44:40 +0100
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