newInstance([]); } public function setUp() { parent::setUp(); $auth = new HummingbirdAuth($this->container); $friend = new Friend($auth); $this->auth = $friend; $this->container->set('session', self::$session); } public function dataAuthenticate() { $testToken = 'notReallyAValidTokenButThisIsATest'; return [ 'successful auth call' => [ 'username' => 'timw4mailtest', 'password' => 'password', 'response_data' => [ 'code' => 201, 'body' => json_encode($testToken) ], 'session_value' => $testToken, 'expected' => TRUE, ], 'unsuccessful auth call' => [ 'username' => 'foo', 'password' => 'foobarbaz', 'response_data' => [ 'code' => 401, 'body' => '{"error":"Invalid credentials"}', ], 'session_value' => FALSE, 'expected' => FALSE, ] ]; } /** * @dataProvider dataAuthenticate */ public function testAuthenticate($username, $password, $response_data, $session_value, $expected) { $this->container->get('config') ->set('hummingbird_username', $username); $model = new MockBaseApiModel($this->container); $mock = new MockHandler([ new Response($response_data['code'], [], $response_data['body']) ]); $handler = HandlerStack::create($mock); $client = new Client([ 'handler' => $handler, 'http_errors' => FALSE // Don't throw an exception for 400/500 class status codes ]); $model->__set('client', $client); $this->auth->__set('model', $model); $actual = $this->auth->authenticate($password); $this->assertEquals($expected, $actual); } }