componentFactory = $this->getMockBuilder(TokenUiComponentInterfaceFactory::class) ->disableOriginalConstructor() ->setMethods(['create']) ->getMock(); $this->urlBuilder = $this->createMock(UrlInterface::class); $this->tokenUiComponentProvider = new TokenUiComponentProvider( $this->componentFactory, $this->urlBuilder ); } /** * @covers \Magento\Braintree\Model\Ui\Adminhtml\TokenUiComponentProvider::getComponentForToken */ public function testGetComponentForToken() { $nonceUrl = 'https://payment/adminhtml/nonce/url'; $type = 'VI'; $maskedCC = '1111'; $expirationDate = '12/2015'; $expected = [ 'code' => 'vault', 'nonceUrl' => $nonceUrl, 'details' => [ 'type' => $type, 'maskedCC' => $maskedCC, 'expirationDate' => $expirationDate ], 'template' => 'vault.phtml' ]; $paymentToken = $this->createMock(PaymentTokenInterface::class); $paymentToken->expects(static::once()) ->method('getTokenDetails') ->willReturn('{"type":"VI","maskedCC":"1111","expirationDate":"12\/2015"}'); $paymentToken->expects(static::once()) ->method('getPublicHash') ->willReturn('37du7ir5ed'); $this->urlBuilder->expects(static::once()) ->method('getUrl') ->willReturn($nonceUrl); $tokenComponent = $this->createMock(TokenUiComponentInterface::class); $tokenComponent->expects(static::once()) ->method('getConfig') ->willReturn($expected); $this->componentFactory->expects(static::once()) ->method('create') ->willReturn($tokenComponent); $component = $this->tokenUiComponentProvider->getComponentForToken($paymentToken); static::assertEquals($tokenComponent, $component); static::assertEquals($expected, $component->getConfig()); } }