Skip to content

Commit 6311907

Browse files
committed
ADO-424: Adds phpunit for Meta_Conversion module
1 parent 84aa1ee commit 6311907

34 files changed

+2812
-142
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace Meta\Conversion\Test\Unit\Block\Pixel;
5+
6+
use PHPUnit\Framework\TestCase;
7+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
8+
use Meta\Conversion\Block\Pixel\AddPaymentInfo;
9+
10+
class AddPaymentInfoTest extends TestCase
11+
{
12+
private $subject;
13+
14+
public function setUp(): void
15+
{
16+
$objectManager = new ObjectManager($this);
17+
$this->subject = $objectManager->getObject(AddPaymentInfo::class);
18+
}
19+
20+
public function testGetEventToObserveName()
21+
{
22+
$this->assertEquals('facebook_businessextension_ssapi_add_payment_info', $this->subject->getEventToObserveName());
23+
}
24+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace Meta\Conversion\Test\Unit\Block\Pixel;
5+
6+
use PHPUnit\Framework\TestCase;
7+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
8+
use Meta\Conversion\Block\Pixel\AddToCart;
9+
use Magento\Framework\View\Element\Template\Context;
10+
use Meta\BusinessExtension\Helper\FBEHelper;
11+
use Meta\Conversion\Helper\MagentoDataHelper;
12+
use Meta\BusinessExtension\Model\System\Config as SystemConfig;
13+
use Magento\Framework\Escaper;
14+
use Magento\Checkout\Model\Session as CheckoutSession;
15+
16+
17+
class AddToCartTest extends TestCase
18+
{
19+
private $contextMock;
20+
private $fbeHelperMock;
21+
private $magentoDataHelperMock;
22+
private $systemConfigMock;
23+
private $escaperMock;
24+
private $checkoutSessionMock;
25+
private $subject;
26+
27+
public function setUp(): void
28+
{
29+
$this->contextMock = $this->getMockBuilder(Context::class)
30+
->disableOriginalConstructor()
31+
->getMock();
32+
$this->fbeHelperMock = $this->getMockBuilder(FBEHelper::class)
33+
->disableOriginalConstructor()
34+
->getMock();
35+
$this->magentoDataHelperMock = $this->getMockBuilder(MagentoDataHelper::class)
36+
->disableOriginalConstructor()
37+
->getMock();
38+
$this->systemConfigMock = $this->getMockBuilder(SystemConfig::class)
39+
->disableOriginalConstructor()
40+
->getMock();
41+
$this->escaperMock = $this->getMockBuilder(Escaper::class)
42+
->disableOriginalConstructor()
43+
->getMock();
44+
$this->checkoutSessionMock = $this->getMockBuilder(CheckoutSession::class)
45+
->disableOriginalConstructor()
46+
->getMock();
47+
48+
$objectManager = new ObjectManager($this);
49+
$this->subject = $objectManager->getObject(AddToCart::class, [
50+
'context' => $this->contextMock,
51+
'fbeHelper' => $this->fbeHelperMock,
52+
'magentoDataHelper' => $this->magentoDataHelperMock,
53+
'systemConfig' => $this->systemConfigMock,
54+
'escaper' => $this->escaperMock,
55+
'checkoutSession' => $this->checkoutSessionMock
56+
]);
57+
}
58+
59+
public function testGetEventToObserveName()
60+
{
61+
$this->assertEquals('facebook_businessextension_ssapi_add_to_cart', $this->subject->getEventToObserveName());
62+
}
63+
64+
public function testGetProductInfoUrl()
65+
{
66+
$domain = 'magento.com';
67+
$url = 'fbe/Pixel/ProductInfoForAddToCart';
68+
69+
$this->fbeHelperMock->expects($this->once())
70+
->method('getBaseUrl')
71+
->willReturn($domain);
72+
73+
$this->assertEquals($domain.''.$url, $this->subject->getProductInfoUrl());
74+
}
75+
}
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
<?php
2+
3+
namespace Meta\Conversion\Test\Unit\Block\Pixel;
4+
5+
use PHPUnit\Framework\TestCase;
6+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
7+
use \Magento\Framework\View\Element\Template\Context;
8+
use \Meta\BusinessExtension\Helper\FBEHelper;
9+
use \Meta\Conversion\Helper\MagentoDataHelper;
10+
use \Meta\BusinessExtension\Model\System\Config as SystemConfig;
11+
use \Magento\Framework\Escaper;
12+
use \Magento\Checkout\Model\Session as CheckoutSession;
13+
use Meta\Conversion\Block\Pixel\AddToWishlist;
14+
use Magento\Customer\Model\Session as CustomerSession;
15+
16+
class AddToWishlistTest extends TestCase
17+
{
18+
private $contextMock;
19+
private $fbeHelperMock;
20+
private $magentoDataHelperMock;
21+
private $systemConfigMock;
22+
private $escaperMock;
23+
private $checkoutSessionMock;
24+
private $customerSessionMock;
25+
private $subject;
26+
27+
public function setUp(): void
28+
{
29+
$this->contextMock = $this->getMockBuilder(Context::class)
30+
->disableOriginalConstructor()
31+
->getMock();
32+
$this->fbeHelperMock = $this->getMockBuilder(FBEHelper::class)
33+
->disableOriginalConstructor()
34+
->getMock();
35+
$this->magentoDataHelperMock = $this->getMockBuilder(MagentoDataHelper::class)
36+
->disableOriginalConstructor()
37+
->getMock();
38+
$this->systemConfigMock = $this->getMockBuilder(SystemConfig::class)
39+
->disableOriginalConstructor()
40+
->getMock();
41+
$this->escaperMock = $this->getMockBuilder(Escaper::class)
42+
->disableOriginalConstructor()
43+
->getMock();
44+
$this->checkoutSessionMock = $this->getMockBuilder(CheckoutSession::class)
45+
->disableOriginalConstructor()
46+
->getMock();
47+
$this->customerSessionMock = $this->getMockBuilder(CustomerSession::class)
48+
->addMethods(['getMetaEventIds'])
49+
->disableOriginalConstructor()
50+
->getMock();
51+
52+
$objectManager = new ObjectManager($this);
53+
$this->subject = $objectManager->getObject(AddToWishlist::class, [
54+
'context' => $this->contextMock,
55+
'fbeHelper' => $this->fbeHelperMock,
56+
'magentoDataHelper' => $this->magentoDataHelperMock,
57+
'systemConfig' => $this->systemConfigMock,
58+
'escaper' => $this->escaperMock,
59+
'checkoutSession' => $this->checkoutSessionMock,
60+
'customerSession' => $this->customerSessionMock
61+
]);
62+
}
63+
64+
public function testGetEventToObserveName()
65+
{
66+
$this->assertEquals('facebook_businessextension_ssapi_add_to_wishlist', $this->subject->getEventToObserveName());
67+
}
68+
69+
public function testGetEventId()
70+
{
71+
$eventToObserverName = 'facebook_businessextension_ssapi_add_to_wishlist';
72+
$eventId = '12345t-sdfg-12345-dsafg123';
73+
$metaEventIds = [
74+
$eventToObserverName => $eventId
75+
];
76+
77+
$this->customerSessionMock->expects($this->once())
78+
->method('getMetaEventIds')
79+
->willReturn($metaEventIds);
80+
$this->assertEquals($eventId, $this->subject->getEventId());
81+
}
82+
83+
public function testGetEventIdNull()
84+
{
85+
$eventToObserverName = 'facebook_businessextension_ssapi_add_to_wishlists';
86+
$eventId = '12345t-sdfg-12345-dsafg123';
87+
$metaEventIds = [
88+
$eventToObserverName => $eventId
89+
];
90+
91+
$this->customerSessionMock->expects($this->once())
92+
->method('getMetaEventIds')
93+
->willReturn($metaEventIds);
94+
$this->assertNull($this->subject->getEventId());
95+
}
96+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace Meta\Conversion\Test\Unit\Block\Pixel;
5+
6+
use PHPUnit\Framework\TestCase;
7+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
8+
use Meta\Conversion\Block\Pixel\ViewContact;
9+
10+
class ViewContactTest extends TestCase
11+
{
12+
private $subject;
13+
14+
public function setUp(): void
15+
{
16+
$objectManager = new ObjectManager($this);
17+
$this->subject = $objectManager->getObject(ViewContact::class);
18+
}
19+
20+
public function testGetContentType()
21+
{
22+
$this->assertEquals('contact', $this->subject->getContentType());
23+
}
24+
25+
public function testGetEventToObserveName()
26+
{
27+
$this->assertEquals('facebook_businessextension_ssapi_contact', $this->subject->getEventToObserveName());
28+
}
29+
}
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace Meta\Conversion\Test\Unit\Controller\Pixel;
5+
6+
use PHPUnit\Framework\TestCase;
7+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
8+
use Meta\Conversion\Controller\Pixel\ProductInfoForAddToCart;
9+
use Magento\Framework\Controller\Result\JsonFactory;
10+
use Magento\Framework\Controller\Result\Json;
11+
use Meta\BusinessExtension\Helper\FBEHelper;
12+
use Magento\Framework\Data\Form\FormKey\Validator;
13+
use Meta\Conversion\Helper\MagentoDataHelper;
14+
use Magento\Framework\Pricing\Helper\Data;
15+
use Magento\Framework\Event\ManagerInterface;
16+
use Magento\Framework\App\RequestInterface;
17+
use Magento\Framework\Controller\ResultFactory;
18+
use Magento\Framework\Controller\ResultInterface;
19+
20+
class ProductInfoForAddToCartTest extends TestCase
21+
{
22+
private $jsonFactoryMock;
23+
private $jsonMock;
24+
private $fbeHelperMock;
25+
private $validatorMock;
26+
private $magentoDataHelperMock;
27+
private $priceHelperMock;
28+
private $eventManagerMock;
29+
private $requestMock;
30+
private $resultFactoryMock;
31+
private $resultMock;
32+
private $subject;
33+
34+
public function setUp(): void
35+
{
36+
$this->jsonFactoryMock = $this->getMockBuilder(JsonFactory::class)
37+
->disableOriginalConstructor()
38+
->getMock();
39+
$this->jsonMock = $this->getMockBuilder(Json::class)
40+
->disableOriginalConstructor()
41+
->getMock();
42+
$this->fbeHelperMock = $this->getMockBuilder(FBEHelper::class)
43+
->disableOriginalConstructor()
44+
->getMock();
45+
$this->validatorMock = $this->getMockBuilder(Validator::class)
46+
->disableOriginalConstructor()
47+
->getMock();
48+
$this->magentoDataHelperMock = $this->getMockBuilder(MagentoDataHelper::class)
49+
->disableOriginalConstructor()
50+
->getMock();
51+
$this->priceHelperMock = $this->getMockBuilder(Data::class)
52+
->disableOriginalConstructor()
53+
->getMock();
54+
$this->eventManagerMock = $this->getMockBuilder(ManagerInterface::class)
55+
->disableOriginalConstructor()
56+
->getMockForAbstractClass();
57+
$this->requestMock = $this->getMockBuilder(RequestInterface::class)
58+
->disableOriginalConstructor()
59+
->getMockForAbstractClass();
60+
$this->resultFactoryMock = $this->getMockBuilder(ResultFactory::class)
61+
->disableOriginalConstructor()
62+
->getMock();
63+
$this->resultMock = $this->getMockBuilder(ResultInterface::class)
64+
->addMethods(['setUrl'])
65+
->disableOriginalConstructor()
66+
->getMockForAbstractClass();
67+
68+
$objectManager = new ObjectManager($this);
69+
$this->subject = $objectManager->getObject(ProductInfoForAddToCart::class, [
70+
'jsonFactory' => $this->jsonFactoryMock,
71+
'fbeHelper' => $this->fbeHelperMock,
72+
'formKeyValidator' => $this->validatorMock,
73+
'magentoDataHelper' => $this->magentoDataHelperMock,
74+
'priceHelper' => $this->priceHelperMock,
75+
'eventManager' => $this->eventManagerMock,
76+
'request' => $this->requestMock,
77+
'resultFactory' => $this->resultFactoryMock,
78+
]);
79+
}
80+
81+
public function testExecuteNoValidate()
82+
{
83+
$productId = 1;
84+
$productSku = 'test-sku';
85+
86+
$this->resultFactoryMock->expects($this->once())
87+
->method('create')
88+
->willReturn($this->resultMock);
89+
$this->requestMock->expects($this->exactly(2))
90+
->method('getParam')
91+
->withConsecutive(['product_id', null], ['product_sku', null])
92+
->willReturnOnConsecutiveCalls($productId, $productSku);
93+
94+
$this->validatorMock->expects($this->once())
95+
->method('validate')
96+
->with($this->requestMock)
97+
->willReturn(false);
98+
99+
$this->resultFactoryMock->expects($this->once())
100+
->method('create')
101+
->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
102+
->willReturn($this->resultMock);
103+
$this->resultMock->expects($this->once())
104+
->method('setUrl')
105+
->with('noroute')
106+
->willReturnSelf();
107+
$this->subject->execute();
108+
}
109+
110+
public function testExecute()
111+
{
112+
$productId = 1;
113+
$productSku = 'test-sku';
114+
115+
$this->resultFactoryMock->expects($this->once())
116+
->method('create')
117+
->willReturn($this->resultMock);
118+
$this->requestMock->expects($this->exactly(2))
119+
->method('getParam')
120+
->withConsecutive(['product_id', null], ['product_sku', null])
121+
->willReturnOnConsecutiveCalls($productId, $productSku);
122+
123+
$this->validatorMock->expects($this->once())
124+
->method('validate')
125+
->with($this->requestMock)
126+
->willReturn(false);
127+
128+
$this->resultFactoryMock->expects($this->once())
129+
->method('create')
130+
->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
131+
->willReturn($this->resultMock);
132+
$this->resultMock->expects($this->once())
133+
->method('setUrl')
134+
->with('noroute')
135+
->willReturnSelf();
136+
$this->subject->execute();
137+
}
138+
}

0 commit comments

Comments
 (0)