From 35b4ac0286b7a5a7fa74d9fd1cb96da762fcc284 Mon Sep 17 00:00:00 2001 From: AD7six Date: Sat, 3 Aug 2013 12:20:12 +0000 Subject: [PATCH] make it possible to run this test on its own Without setting up paths to the test_app - two of the tests will fail Verify/demonstrate how to mock a model without a model existing --- .../Test/Case/TestSuite/CakeTestCaseTest.php | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/lib/Cake/Test/Case/TestSuite/CakeTestCaseTest.php b/lib/Cake/Test/Case/TestSuite/CakeTestCaseTest.php index e5827089dff..f73750470a5 100644 --- a/lib/Cake/Test/Case/TestSuite/CakeTestCaseTest.php +++ b/lib/Cake/Test/Case/TestSuite/CakeTestCaseTest.php @@ -353,6 +353,11 @@ public function testAssertTextNotContains() { * @return void */ public function testGetMockForModel() { + App::build(array( + 'Model' => array( + CAKE . 'Test' . DS . 'test_app' . DS . 'Model' . DS + ) + ), App::RESET); $Post = $this->getMockForModel('Post'); $this->assertInstanceOf('Post', $Post); @@ -372,6 +377,13 @@ public function testGetMockForModel() { * @return void */ public function testGetMockForModelWithPlugin() { + App::build(array( + 'Plugin' => array( + CAKE . 'Test' . DS . 'test_app' . DS . 'Plugin' . DS + ) + ), App::RESET); + CakePlugin::load('TestPlugin'); + $this->getMockForModel('TestPlugin.TestPluginAppModel'); $TestPluginComment = $this->getMockForModel('TestPlugin.TestPluginComment'); $result = ClassRegistry::init('TestPlugin.TestPluginComment'); @@ -389,4 +401,26 @@ public function testGetMockForModelWithPlugin() { $this->assertTrue($TestPluginComment->save(array())); $this->assertFalse($TestPluginComment->save(array())); } + +/** + * testGetMockForModelModel + * + * @return void + */ + public function testGetMockForModelModel() { + $Mock = $this->getMockForModel('Model', array('save'), array('name' => 'Comment')); + + $result = ClassRegistry::init('Comment'); + $this->assertInstanceOf('Model', $result); + + $Mock->expects($this->at(0)) + ->method('save') + ->will($this->returnValue(true)); + $Mock->expects($this->at(1)) + ->method('save') + ->will($this->returnValue(false)); + + $this->assertTrue($Mock->save(array())); + $this->assertFalse($Mock->save(array())); + } }