Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class NewsFormHandlerTest extends CodeceptionTestUnit
- {
- /**
- * @var UnitTester
- */
- protected $tester;
- protected function _before()
- {
- }
- protected function _after()
- {
- }
- private function getFormMock(){
- return $this->getMockBuilder(FormInterface::class)
- ->disableOriginalConstructor()
- ->getMock();
- }
- private function getNewsManagerMock(){
- return $this->getMockBuilder(INewsManager::class)
- ->disableOriginalConstructor()
- ->getMock();
- }
- // tests
- public function testShouldHandleASuccessfulFormSubmissionForAddANews()
- {
- // prepare
- $request = new SymfonyComponentHttpFoundationRequest();
- $news = new News();
- $form = $this->getFormMock();
- $form->expects($this->once())
- ->method('isValid')
- ->will($this->returnValue(true));
- $form->expects($this->once())
- ->method('submit');
- $form->expects($this->once())
- ->method('getData')
- ->will($this->returnValue($news));
- $newsManager = $this->getNewsManagerMock();
- $newsManager->expects($this->once())
- ->method('add');
- $user = Stub::make(WebserviceUser::class, []);
- // test
- $handler = new NewsFormHandler($newsManager, $user);
- $newsReturned = $handler->handle($form, $request, NewsFormHandler::ADD);
- // assert
- $this->assertInstanceOf(News::class, $newsReturned);
- $this->assertEquals($news, $newsReturned);
- }
- public function testShouldHandleASuccessfulFormSubmissionForEditANews()
- {
- // prepare
- $request = new SymfonyComponentHttpFoundationRequest();
- $news = new News();
- $form = $this->getFormMock();
- $form->expects($this->once())
- ->method('isValid')
- ->will($this->returnValue(true));
- $form->expects($this->once())
- ->method('submit');
- $form->expects($this->once())
- ->method('getData')
- ->will($this->returnValue($news));
- $newsManager = $this->getNewsManagerMock();
- $newsManager->expects($this->once())
- ->method('edit');
- $user = Stub::make(WebserviceUser::class, []);
- // test
- $handler = new NewsFormHandler($newsManager, $user);
- $newsReturned = $handler->handle($form, $request, NewsFormHandler::EDIT);
- // assert
- $this->assertInstanceOf(News::class, $newsReturned);
- $this->assertEquals($news, $newsReturned);
- }
- public function testFailFormWithInvalidData()
- {
- // prepare
- $request = new SymfonyComponentHttpFoundationRequest();
- $form = $this->getFormMock();
- $form->expects($this->once())
- ->method('isValid')
- ->will($this->returnValue(false));
- $newsManager = $this->getNewsManagerMock();
- $newsManager->expects($this->never())
- ->method('edit');
- $this->expectException(InvalidFormException::class);
- $user = Stub::make(WebserviceUser::class, []);
- // test
- $handler = new NewsFormHandler($newsManager, $user);
- $newsReturned = $handler->handle($form, $request, NewsFormHandler::ADD);
- // assert
- $this->assertNull($newsReturned);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement