| 
									
										
										
										
											2012-11-23 12:22:04 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | use Mockery as m; | 
					
						
							| 
									
										
										
										
											2013-02-08 10:32:26 +00:00
										 |  |  | use JacobKiers\OAuth\SignatureMethod; | 
					
						
							| 
									
										
										
										
											2012-11-23 12:22:04 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * Create concrete class from abstract SignatureMethod. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Have to define two methods which are abstract in SignatureMethod. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | class FooBarSignatureMethod extends SignatureMethod | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     public function getName() { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function buildSignature( | 
					
						
							| 
									
										
										
										
											2013-02-08 15:28:03 +00:00
										 |  |  |         \JacobKiers\OAuth\RequestInterface $request, | 
					
						
							| 
									
										
										
										
											2013-02-08 10:32:26 +00:00
										 |  |  |         \JacobKiers\OAuth\Client $client, | 
					
						
							|  |  |  |         \JacobKiers\OAuth\Token $token = null | 
					
						
							| 
									
										
										
										
											2012-11-23 12:22:04 +00:00
										 |  |  |     ) { | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SignatureTest extends PHPUnit_Framework_TestCase | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     public function tearDown() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         m::close(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function testGetSignatureKeyWithoutToken() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // Create instance of class to test, with mock objects passed in.
 | 
					
						
							|  |  |  |         $signature_method = $this->getSignatureMethod(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Get mock objects
 | 
					
						
							|  |  |  |         $client = $this->getClient(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Run method being tested
 | 
					
						
							|  |  |  |         $signature_key = $signature_method->getSignatureKey($client); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Check results
 | 
					
						
							|  |  |  |         $this->assertEquals('secret&', $signature_key); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function testGetSignatureKeyWithToken() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         // Create instance of class to test, with mock objects passed in.
 | 
					
						
							|  |  |  |         $signature_method = $this->getSignatureMethod(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Get mock objects
 | 
					
						
							|  |  |  |         $client = $this->getClient(); | 
					
						
							|  |  |  |         $token = $this->getToken(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Run method being tested
 | 
					
						
							|  |  |  |         $signature_key = $signature_method->getSignatureKey($client, $token); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // Check results
 | 
					
						
							|  |  |  |         $this->assertEquals('secret&token_secret', $signature_key); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     private function getSignatureMethod() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         return new FooBarSignatureMethod; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     private function getClient() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2013-02-08 10:32:26 +00:00
										 |  |  |         return m::mock('JacobKiers\OAuth\Client', function ($mock) { | 
					
						
							| 
									
										
										
										
											2012-11-23 12:22:04 +00:00
										 |  |  |             $mock->shouldReceive('getSecret')->withNoArgs()->andReturn('secret')->once(); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     private function getToken() | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2013-02-08 10:32:26 +00:00
										 |  |  |         return m::mock('JacobKiers\OAuth\Token', function ($mock) { | 
					
						
							| 
									
										
										
										
											2012-11-23 12:22:04 +00:00
										 |  |  |             $mock->shouldReceive('getSecret')->withNoArgs()->andReturn('token_secret'); | 
					
						
							|  |  |  |         }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |