Advertisement
Guest User

Untitled

a guest
Dec 11th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.31 KB | None | 0 0
  1. class NewsFormHandlerTest extends CodeceptionTestUnit
  2. {
  3. /**
  4. * @var UnitTester
  5. */
  6. protected $tester;
  7.  
  8. protected function _before()
  9. {
  10. }
  11.  
  12. protected function _after()
  13. {
  14. }
  15.  
  16. private function getFormMock(){
  17.  
  18. return $this->getMockBuilder(FormInterface::class)
  19. ->disableOriginalConstructor()
  20. ->getMock();
  21. }
  22.  
  23. private function getNewsManagerMock(){
  24.  
  25. return $this->getMockBuilder(INewsManager::class)
  26. ->disableOriginalConstructor()
  27. ->getMock();
  28. }
  29.  
  30. // tests
  31.  
  32. public function testShouldHandleASuccessfulFormSubmissionForAddANews()
  33. {
  34.  
  35. // prepare
  36. $request = new SymfonyComponentHttpFoundationRequest();
  37. $news = new News();
  38.  
  39. $form = $this->getFormMock();
  40. $form->expects($this->once())
  41. ->method('isValid')
  42. ->will($this->returnValue(true));
  43.  
  44. $form->expects($this->once())
  45. ->method('submit');
  46.  
  47. $form->expects($this->once())
  48. ->method('getData')
  49. ->will($this->returnValue($news));
  50.  
  51. $newsManager = $this->getNewsManagerMock();
  52. $newsManager->expects($this->once())
  53. ->method('add');
  54.  
  55. $user = Stub::make(WebserviceUser::class, []);
  56.  
  57. // test
  58. $handler = new NewsFormHandler($newsManager, $user);
  59. $newsReturned = $handler->handle($form, $request, NewsFormHandler::ADD);
  60.  
  61. // assert
  62. $this->assertInstanceOf(News::class, $newsReturned);
  63. $this->assertEquals($news, $newsReturned);
  64.  
  65. }
  66.  
  67. public function testShouldHandleASuccessfulFormSubmissionForEditANews()
  68. {
  69.  
  70. // prepare
  71. $request = new SymfonyComponentHttpFoundationRequest();
  72. $news = new News();
  73.  
  74. $form = $this->getFormMock();
  75. $form->expects($this->once())
  76. ->method('isValid')
  77. ->will($this->returnValue(true));
  78.  
  79. $form->expects($this->once())
  80. ->method('submit');
  81.  
  82. $form->expects($this->once())
  83. ->method('getData')
  84. ->will($this->returnValue($news));
  85.  
  86. $newsManager = $this->getNewsManagerMock();
  87. $newsManager->expects($this->once())
  88. ->method('edit');
  89.  
  90. $user = Stub::make(WebserviceUser::class, []);
  91.  
  92. // test
  93. $handler = new NewsFormHandler($newsManager, $user);
  94. $newsReturned = $handler->handle($form, $request, NewsFormHandler::EDIT);
  95.  
  96. // assert
  97. $this->assertInstanceOf(News::class, $newsReturned);
  98. $this->assertEquals($news, $newsReturned);
  99.  
  100. }
  101.  
  102. public function testFailFormWithInvalidData()
  103. {
  104.  
  105. // prepare
  106. $request = new SymfonyComponentHttpFoundationRequest();
  107.  
  108. $form = $this->getFormMock();
  109. $form->expects($this->once())
  110. ->method('isValid')
  111. ->will($this->returnValue(false));
  112.  
  113.  
  114. $newsManager = $this->getNewsManagerMock();
  115. $newsManager->expects($this->never())
  116. ->method('edit');
  117.  
  118. $this->expectException(InvalidFormException::class);
  119.  
  120. $user = Stub::make(WebserviceUser::class, []);
  121.  
  122. // test
  123. $handler = new NewsFormHandler($newsManager, $user);
  124. $newsReturned = $handler->handle($form, $request, NewsFormHandler::ADD);
  125.  
  126. // assert
  127. $this->assertNull($newsReturned);
  128.  
  129. }
  130.  
  131.  
  132.  
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement