/**
  * Test fetchFull() method returns data if provided id
  */
 public function testFetchFullReturnsDataIfProvidedId()
 {
     $mockId = 1;
     $mockData = ['key' => 'somevalue'];
     $mockApp = m::mock(\Silex\Application::class)->makePartial();
     $mockDataObject = m::mock(CommentatorApi::class, [$mockApp]);
     $mockDataObject->shouldReceive('fetchCommentatorFullDataById')->with($mockId)->andReturn($mockData);
     $object = new CommentatorApi($mockDataObject);
     $returned = $object->fetchFull($mockId);
     $this->assertSame($mockData, $returned);
 }
示例#2
0
 /**
  * @param Application $app
  * @param $user string
  *
  * @return \Symfony\Component\HttpFoundation\RedirectResponse|Response
  */
 public function validateLogin(Application $app, $user)
 {
     $resultFalseMessage = 'Failed logging in. Reason: ';
     $resultTrueMessage = 'Successfully logged in.';
     switch ($user) {
         case 'author':
             $apiObject = new AuthorApi(new AuthorData($app));
             break;
         case 'commentator':
             $apiObject = new CommentatorApi(new CommentatorData($app));
             break;
         default:
             $app['session']->getFlashBag()->add('message', 'Unknown user login attempt.');
             return $this->index($app);
     }
     $apiObject->setPasswordObject(new Password());
     try {
         $result = $apiObject->login($_POST);
     } catch (\InvalidArgumentException $e) {
         $message = $e->getMessage();
     } catch (\UnexpectedValueException $e) {
         $message = $e->getMessage();
     }
     if (!isset($result) || !$result) {
         $app['session']->getFlashBag()->add('message', $resultFalseMessage);
         if (isset($message)) {
             $app['session']->getFlashBag()->add('message', $message);
         }
         //            return $app->redirect($failureRedirPath, $failureRedirCode);
         return $this->viewLogin($app, $user);
     }
     $app['session']->getFlashBag()->add('message', $resultTrueMessage);
     return $this->index($app);
 }