Advertisement
Guest User

Untitled

a guest
May 6th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. public function testAddActionRedirectsAfterValidPost()
  2. {
  3. $postObject = new Post();
  4.  
  5. $postServiceMock = $this->getMockBuilder('BlogServicePostServiceInterface')
  6. ->disableOriginalConstructor()->getMock();
  7. $postServiceMock->expects($this->once())->method('savePost')
  8. ->will($this->returnValue($postObject));
  9.  
  10. $postFormMock = $this->getMockBuilder('BlogFormPostForm')
  11. ->disableOriginalConstructor()->getMock();
  12. $postFormMock->expects($this->once())->method('isValid')
  13. ->will($this->returnValue(true));
  14. $postFormMock->expects($this->once())->method('getData')
  15. ->will($this->returnValue($postObject));
  16.  
  17. $serviceManager = $this->getApplicationServiceLocator();
  18. $serviceManager->setAllowOverride(true);
  19. $serviceManager->setService('BlogServicePostServiceInterface', $postServiceMock);
  20. $serviceManager->setService('BlogFormPostForm', $postFormMock);
  21.  
  22. $postData = array(
  23. 'id' => '',
  24. 'title' => 'My title',
  25. 'text' => 'My text'
  26. );
  27. $this->dispatch('/blog/add', 'POST', $postData);
  28. $this->assertModuleName('Blog');
  29. $this->assertControllerName('BlogControllerWrite'); //Controller name was defined in the module.config.php
  30. $this->assertControllerClass('WriteController');
  31. $this->assertMatchedRouteName('blog/add');
  32. $this->assertResponseStatusCode(302);
  33. $this->assertRedirectTo('/blog');
  34. }
  35.  
  36. $postFormMock->expects($this->once())->method('isValid')
  37. ->will($this->returnValue(false));
  38.  
  39. public function addAction()
  40. {
  41. $request = $this->getRequest();
  42. if ($request->isPost()) {
  43. $this->postForm->setData($request->getPost());
  44. if ($this->postForm->isValid()) {
  45. try { //TODO create private method?
  46. $this->postService->savePost($this->postForm->getData());
  47.  
  48. return $this->redirect()->toRoute('blog');
  49. } catch (Exception $e) {
  50. die($e->getMessage());
  51. //TODO Some DB Error happened, log it and let the user know
  52. }
  53. }
  54. }
  55.  
  56. return new ViewModel(array(
  57. 'form' => $this->postForm
  58. ));
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement