1010use Mockery as m ;
1111use PHPUnit \Framework \TestCase ;
1212use Psr \Http \Message \ResponseInterface ;
13+ use Psr \Http \Message \StreamInterface ;
1314
1415class LinkedInProviderTest extends TestCase
1516{
@@ -25,15 +26,24 @@ public function test_it_can_map_a_user_without_an_email_address()
2526 $ request = m::mock (Request::class);
2627 $ request ->allows ('input ' )->with ('code ' )->andReturns ('fake-code ' );
2728
29+ $ stream = m::mock (StreamInterface::class);
30+ $ stream ->allows ('__toString ' )->andReturns (json_encode (['access_token ' => 'fake-token ' ]));
31+
2832 $ accessTokenResponse = m::mock (ResponseInterface::class);
29- $ accessTokenResponse ->allows ('getBody ' )->andReturns (json_encode (['access_token ' => 'fake-token ' ]));
33+ $ accessTokenResponse ->allows ('getBody ' )->andReturns ($ stream );
34+
35+ $ basicProfileStream = m::mock (StreamInterface::class);
36+ $ basicProfileStream ->allows ('__toString ' )->andReturns (json_encode (['id ' => $ userId = 1 ]));
3037
3138 $ basicProfileResponse = m::mock (ResponseInterface::class);
32- $ basicProfileResponse ->allows ('getBody ' )->andReturns (json_encode (['id ' => $ userId = 1 ]));
39+ $ basicProfileResponse ->allows ('getBody ' )->andReturns ($ basicProfileStream );
40+
41+ $ emailAddressStream = m::mock (StreamInterface::class);
42+ $ emailAddressStream ->allows ('__toString ' )->andReturns (json_encode (['elements ' => []]));
3343
3444 // Make sure email address response contains no values.
3545 $ emailAddressResponse = m::mock (ResponseInterface::class);
36- $ emailAddressResponse ->allows ('getBody ' )->andReturns (json_encode ([ ' elements ' => []]) );
46+ $ emailAddressResponse ->allows ('getBody ' )->andReturns ($ emailAddressStream );
3747
3848 $ guzzle = m::mock (Client::class);
3949 $ guzzle ->expects ('post ' )->andReturns ($ accessTokenResponse );
0 commit comments