OAuthTest.php
1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
namespace Test\Unit;
require_once dirname(__DIR__) . '/Setup.php';
use Test\Setup;
use Braintree;
class OAuthTest extends Setup
{
    protected $gateway;
    public function setUp()
    {
        $this->gateway = new Braintree\Gateway([
            'clientId' => 'client_id$development$integration_client_id',
            'clientSecret' => 'client_secret$development$integration_client_secret'
        ]);
    }
    public function testMapInvalidGrantCodeToOldError()
    {
        $result = $this->_buildResult([
            'code' => '93801',
            'message' => 'Invalid grant: code not found'
        ]);
        $this->gateway->oauth()->_mapError($result);
        $this->assertEquals($result->error, 'invalid_grant');
        $this->assertEquals($result->errorDescription, 'code not found');
    }
    public function testMapInvalidCredentialsCodeToOldError()
    {
        $result = $this->_buildResult([
            'code' => '93802',
            'message' => 'Invalid credentials: wrong client id or secret'
        ]);
        $this->gateway->oauth()->_mapError($result);
        $this->assertEquals($result->error, 'invalid_credentials');
        $this->assertEquals($result->errorDescription, 'wrong client id or secret');
    }
    public function testMapInvalidScopeCodeToOldError()
    {
        $result = $this->_buildResult([
            'code' => '93803',
            'message' => 'Invalid scope: scope is invalid'
        ]);
        $this->gateway->oauth()->_mapError($result);
        $this->assertEquals($result->error, 'invalid_scope');
        $this->assertEquals($result->errorDescription, 'scope is invalid');
    }
    protected function _buildResult($error)
    {
        return new Braintree\Result\Error([
            'errors' => [
                'errors' => [],
                'credentials' => [
                    'errors' => [$error]
                ]
            ]
        ]);
    }
}