Skip to content

Commit 48ecb3b

Browse files
committed
Merge remote-tracking branch 'origin/MAGETWO-53281' into MPI-BUGFIXES
2 parents cf8ed0f + 0bbcb1c commit 48ecb3b

File tree

4 files changed

+116
-0
lines changed

4 files changed

+116
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Braintree\Gateway\Request;
7+
8+
use Magento\Payment\Gateway\Request\BuilderInterface;
9+
use Magento\Framework\App\ProductMetadataInterface;
10+
11+
/**
12+
* Class BnCodeDataBuilder
13+
*/
14+
class ChannelDataBuilder implements BuilderInterface
15+
{
16+
/**
17+
* @var ProductMetadataInterface
18+
*/
19+
private $productMetadata;
20+
21+
/**
22+
* @var string
23+
*/
24+
private static $channel = 'channel';
25+
26+
/**
27+
* @var string
28+
*/
29+
private static $channelValue = 'Magento2_Cart_%s_BT';
30+
31+
/**
32+
* Constructor
33+
*
34+
* @param ProductMetadataInterface $productMetadata
35+
*/
36+
public function __construct(ProductMetadataInterface $productMetadata)
37+
{
38+
$this->productMetadata = $productMetadata;
39+
}
40+
41+
/**
42+
* @inheritdoc
43+
*/
44+
public function build(array $buildSubject)
45+
{
46+
return [
47+
self::$channel => sprintf(self::$channelValue, $this->productMetadata->getEdition())
48+
];
49+
}
50+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?php
2+
/**
3+
* Copyright © 2016 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\Braintree\Test\Unit\Gateway\Request;
7+
8+
use Magento\Braintree\Gateway\Request\ChannelDataBuilder;
9+
use Magento\Framework\App\ProductMetadataInterface;
10+
11+
/**
12+
* Class PaymentDataBuilderTest
13+
*
14+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
15+
*/
16+
class ChannelDataBuilderTest extends \PHPUnit_Framework_TestCase
17+
{
18+
/**
19+
* @var ProductMetadataInterface|\PHPUnit_Framework_MockObject_MockObject
20+
*/
21+
private $productMetadataMock;
22+
23+
/**
24+
* @var ChannelDataBuilder
25+
*/
26+
private $builder;
27+
28+
protected function setUp()
29+
{
30+
$this->productMetadataMock = $this->getMock(ProductMetadataInterface::class);
31+
$this->builder = new ChannelDataBuilder($this->productMetadataMock);
32+
}
33+
34+
/**
35+
* @param string $edition
36+
* @param array $expected
37+
* @covers \Magento\Braintree\Gateway\Request\ChannelDataBuilder::build
38+
* @dataProvider buildDataProvider
39+
*/
40+
public function testBuild($edition, array $expected)
41+
{
42+
$buildSubject = [];
43+
$this->productMetadataMock->expects(static::once())
44+
->method('getEdition')
45+
->willReturn($edition);
46+
47+
$this->assertEquals($expected, $this->builder->build($buildSubject));
48+
}
49+
50+
/**
51+
* Get list of variations for build test
52+
* @return array
53+
*/
54+
public function buildDataProvider()
55+
{
56+
return [
57+
['FirstEdition', ['channel' => 'Magento2_Cart_FirstEdition_BT']],
58+
['SecondEdition', ['channel' => 'Magento2_Cart_SecondEdition_BT']],
59+
];
60+
}
61+
}

app/code/Magento/Braintree/etc/adminhtml/di.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
<argument name="builders" xsi:type="array">
3232
<item name="customer" xsi:type="string">Magento\Braintree\Gateway\Request\CustomerDataBuilder</item>
3333
<item name="payment" xsi:type="string">Magento\Braintree\Gateway\Request\PaymentDataBuilder</item>
34+
<item name="channel" xsi:type="string">Magento\Braintree\Gateway\Request\ChannelDataBuilder</item>
3435
<item name="address" xsi:type="string">Magento\Braintree\Gateway\Request\AddressDataBuilder</item>
3536
<item name="vault" xsi:type="string">Magento\Braintree\Gateway\Request\VaultDataBuilder</item>
3637
</argument>
@@ -41,6 +42,7 @@
4142
<argument name="builders" xsi:type="array">
4243
<item name="customer" xsi:type="string">Magento\Braintree\Gateway\Request\CustomerDataBuilder</item>
4344
<item name="payment" xsi:type="string">Magento\Braintree\Gateway\Request\PaymentDataBuilder</item>
45+
<item name="channel" xsi:type="string">Magento\Braintree\Gateway\Request\ChannelDataBuilder</item>
4446
<item name="address" xsi:type="string">Magento\Braintree\Gateway\Request\AddressDataBuilder</item>
4547
</argument>
4648
</arguments>

app/code/Magento/Braintree/etc/di.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@
116116
<argument name="builders" xsi:type="array">
117117
<item name="customer" xsi:type="string">Magento\Braintree\Gateway\Request\CustomerDataBuilder</item>
118118
<item name="payment" xsi:type="string">Magento\Braintree\Gateway\Request\PaymentDataBuilder</item>
119+
<item name="channel" xsi:type="string">Magento\Braintree\Gateway\Request\ChannelDataBuilder</item>
119120
<item name="address" xsi:type="string">Magento\Braintree\Gateway\Request\AddressDataBuilder</item>
120121
<item name="vault" xsi:type="string">Magento\Braintree\Gateway\Request\VaultDataBuilder</item>
121122
<item name="3dsecure" xsi:type="string">Magento\Braintree\Gateway\Request\ThreeDSecureDataBuilder</item>
@@ -139,6 +140,7 @@
139140
<argument name="builders" xsi:type="array">
140141
<item name="customer" xsi:type="string">Magento\Braintree\Gateway\Request\CustomerDataBuilder</item>
141142
<item name="payment" xsi:type="string">Magento\Braintree\Gateway\Request\PaymentDataBuilder</item>
143+
<item name="channel" xsi:type="string">Magento\Braintree\Gateway\Request\ChannelDataBuilder</item>
142144
<item name="address" xsi:type="string">Magento\Braintree\Gateway\Request\AddressDataBuilder</item>
143145
<item name="3dsecure" xsi:type="string">Magento\Braintree\Gateway\Request\ThreeDSecureDataBuilder</item>
144146
<item name="kount" xsi:type="string">Magento\Braintree\Gateway\Request\KountPaymentDataBuilder</item>
@@ -158,6 +160,7 @@
158160
<argument name="builders" xsi:type="array">
159161
<item name="customer" xsi:type="string">Magento\Braintree\Gateway\Request\CustomerDataBuilder</item>
160162
<item name="payment" xsi:type="string">Magento\Braintree\Gateway\Request\PaymentDataBuilder</item>
163+
<item name="channel" xsi:type="string">Magento\Braintree\Gateway\Request\ChannelDataBuilder</item>
161164
</argument>
162165
</arguments>
163166
</virtualType>

0 commit comments

Comments
 (0)