public function testAuthRequestFailure() { $mockFile = 'v2.authTest.error'; // create a client with invalid credentials $chargify = new ChargifyV2(['api_id' => 'fdsafdsaf', 'api_password' => 'fgsdgfdsg', 'api_secret' => 'fdsfdsaf']); $direct = $chargify->direct(); // set a fake redirect URL. Chargify will 500 on us if we don't have a redirect URL $direct->setRedirect('http://localhost'); $utilityAuthRequest = new AuthRequest($direct); // set a mock response on the client $mock = new Mock([MockResponse::read($mockFile)]); $utilityAuthRequest->getHttpClient()->getEmitter()->attach($mock); $success = $utilityAuthRequest->test(); $response = $utilityAuthRequest->getLastResponse(); // test should have failed $this->assertFalse($success); // status code should be 200 $this->assertEquals(200, $response->getStatusCode()); // chargify should not redirect us $locationHeader = trim($response->getHeader('Location')); $this->assertTrue(empty($locationHeader)); // body should contain 'Incorrect signature' $bodyIsInvalid = 0 === strcasecmp('Incorrect signature', trim((string) $response->getBody())); $this->assertTrue($bodyIsInvalid); }
/** * Get a Chargify client instance * * @param string $mockResponseFile Filename containing mocked response * @param string $env (test|dev) * * @return ChargifyV2 */ public static function getInstance($mockResponseFile = null, $env = 'test') { $config = array(); switch ($env) { case 'test': $config = (require dirname(__DIR__) . '/configs/ClientV2Config.Test.php'); break; case 'dev': $config = (require dirname(__DIR__) . '/configs/ClientV2Config.Dev.php'); break; } $chargify = new ChargifyV2($config); if (!empty($mockResponseFile)) { $mock = new MockHandler([Psr7\parse_response(MockResponse::read($mockResponseFile))]); $handler = HandlerStack::create($mock); $chargify->getHttpClient()->getConfig('handler')->setHandler($handler); } return $chargify; }