Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
GetClientTokenTest.php
Go to the documentation of this file.
1 <?php
7 
17 use PHPUnit_Framework_MockObject_MockObject as MockObject;
18 
22 class GetClientTokenTest extends \PHPUnit\Framework\TestCase
23 {
27  private $action;
28 
32  private $configMock;
33 
37  private $adapterFactoryMock;
38 
42  private $quoteSessionMock;
43 
47  private $resultFactoryMock;
48 
49  protected function setUp()
50  {
51  $this->resultFactoryMock = $this->getMockBuilder(ResultFactory::class)
52  ->disableOriginalConstructor()
53  ->setMethods(['create'])
54  ->getMock();
55  $context = $this->getMockBuilder(Context::class)
56  ->disableOriginalConstructor()
57  ->setMethods(['getResultFactory'])
58  ->getMock();
59  $context->expects(static::any())
60  ->method('getResultFactory')
61  ->willReturn($this->resultFactoryMock);
62  $this->configMock = $this->getMockBuilder(Config::class)
63  ->disableOriginalConstructor()
64  ->setMethods(['getMerchantAccountId'])
65  ->getMock();
66  $this->adapterFactoryMock = $this->getMockBuilder(BraintreeAdapterFactory::class)
67  ->disableOriginalConstructor()
68  ->setMethods(['create'])
69  ->getMock();
70  $this->quoteSessionMock = $this->getMockBuilder(Quote::class)
71  ->disableOriginalConstructor()
72  ->setMethods(['getStoreId'])
73  ->getMock();
74 
75  $managerHelper = new ObjectManager($this);
76  $this->action = $managerHelper->getObject(GetClientToken::class, [
77  'context' => $context,
78  'config' => $this->configMock,
79  'adapterFactory' => $this->adapterFactoryMock,
80  'quoteSession' => $this->quoteSessionMock,
81  ]);
82  }
83 
84  public function testExecute()
85  {
86  $storeId = '1';
87  $clientToken = 'client_token';
88  $responseMock = $this->getMockBuilder(ResultInterface::class)
89  ->setMethods(['setHttpResponseCode', 'renderResult', 'setHeader', 'setData'])
90  ->getMock();
91  $responseMock->expects(static::once())
92  ->method('setData')
93  ->with(['clientToken' => $clientToken])
94  ->willReturn($responseMock);
95  $this->resultFactoryMock->expects(static::once())
96  ->method('create')
97  ->willReturn($responseMock);
98  $this->quoteSessionMock->expects(static::once())
99  ->method('getStoreId')
100  ->willReturn($storeId);
101  $this->configMock->expects(static::once())
102  ->method('getMerchantAccountId')
103  ->with($storeId)
104  ->willReturn(null);
105  $adapterMock = $this->getMockBuilder(BraintreeAdapter::class)
106  ->disableOriginalConstructor()
107  ->setMethods(['generate'])
108  ->getMock();
109  $adapterMock->expects(static::once())
110  ->method('generate')
111  ->willReturn($clientToken);
112  $this->adapterFactoryMock->expects(static::once())
113  ->method('create')
114  ->willReturn($adapterMock);
115 
116  $this->action->execute();
117  }
118 }