Skip to content

Commit 0082623

Browse files
committed
MC-15295: fix unit tests
1 parent 3a39ce2 commit 0082623

File tree

2 files changed

+112
-76
lines changed

2 files changed

+112
-76
lines changed

app/code/Magento/Newsletter/Test/Unit/Model/Queue/TransportBuilderTest.php

Lines changed: 81 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
<?php
1+
<?php /** @noinspection PhpDeprecationInspection */
2+
/** @noinspection PhpUndefinedClassInspection */
23
/**
34
* Copyright © Magento, Inc. All rights reserved.
45
* See COPYING.txt for license details.
@@ -7,70 +8,100 @@
78

89
namespace Magento\Newsletter\Test\Unit\Model\Queue;
910

11+
use Magento\Email\Model\Template;
12+
use Magento\Email\Model\Template\Filter;
1013
use Magento\Framework\App\TemplateTypesInterface;
14+
use Magento\Framework\Mail\EmailMessageInterface;
15+
use Magento\Framework\Mail\EmailMessageInterfaceFactory;
16+
use Magento\Framework\Mail\Message;
1117
use Magento\Framework\Mail\MessageInterface;
18+
use Magento\Framework\Mail\MessageInterfaceFactory;
19+
use Magento\Framework\Mail\MimePartInterface;
20+
use Magento\Framework\Mail\MimePartInterfaceFactory;
21+
use Magento\Framework\Mail\Template\FactoryInterface;
22+
use Magento\Framework\Mail\Template\SenderResolverInterface;
23+
use Magento\Framework\Mail\TransportInterfaceFactory;
24+
use Magento\Framework\ObjectManagerInterface;
25+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
26+
use Magento\Newsletter\Model\Queue\TransportBuilder;
27+
use PHPUnit\Framework\MockObject\MockObject;
28+
use PHPUnit\Framework\TestCase;
29+
use PHPUnit_Framework_MockObject_MockObject;
1230

1331
/**
1432
* Class TransportBuilderTest
1533
*/
16-
class TransportBuilderTest extends \PHPUnit\Framework\TestCase
34+
class TransportBuilderTest extends TestCase
1735
{
1836
/**
1937
* @var string
2038
*/
21-
protected $builderClassName = \Magento\Newsletter\Model\Queue\TransportBuilder::class;
39+
protected $builderClassName = TransportBuilder::class;
2240

2341
/**
24-
* @var \Magento\Newsletter\Model\Queue\TransportBuilder
42+
* @var TransportBuilder
2543
*/
2644
protected $builder;
2745

2846
/**
29-
* @var \Magento\Framework\Mail\Template\FactoryInterface | \PHPUnit_Framework_MockObject_MockObject
47+
* @var FactoryInterface|PHPUnit_Framework_MockObject_MockObject
3048
*/
3149
protected $templateFactoryMock;
3250

3351
/**
34-
* @var \Magento\Framework\Mail\Message | \PHPUnit_Framework_MockObject_MockObject
52+
* @var Message|PHPUnit_Framework_MockObject_MockObject
3553
*/
3654
protected $messageMock;
3755

3856
/**
39-
* @var \Magento\Framework\ObjectManagerInterface | \PHPUnit_Framework_MockObject_MockObject
57+
* @var ObjectManagerInterface|PHPUnit_Framework_MockObject_MockObject
4058
*/
4159
protected $objectManagerMock;
4260

4361
/**
44-
* @var \Magento\Framework\Mail\Template\SenderResolverInterface | \PHPUnit_Framework_MockObject_MockObject
62+
* @var SenderResolverInterface|PHPUnit_Framework_MockObject_MockObject
4563
*/
4664
protected $senderResolverMock;
4765

4866
/**
49-
* @var \PHPUnit_Framework_MockObject_MockObject
67+
* @var PHPUnit_Framework_MockObject_MockObject
5068
*/
5169
protected $mailTransportFactoryMock;
5270

5371
/**
54-
* @var \Magento\Framework\Mail\MessageInterfaceFactory | \PHPUnit_Framework_MockObject_MockObject
72+
* @var MessageInterfaceFactory|PHPUnit_Framework_MockObject_MockObject
5573
*/
5674
private $messageFactoryMock;
5775

76+
/**
77+
* @var MockObject
78+
*/
79+
private $emailMessageInterfaceFactoryMock;
80+
81+
/**
82+
* @var MockObject
83+
*/
84+
private $mimePartFactoryMock;
85+
5886
/**
5987
* @return void
6088
*/
61-
public function setUp()
89+
public function setUp(): void
6290
{
63-
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
64-
$this->templateFactoryMock = $this->createMock(\Magento\Framework\Mail\Template\FactoryInterface::class);
65-
$this->messageMock = $this->getMockBuilder(\Magento\Framework\Mail\MessageInterface::class)
91+
$objectManagerHelper = new ObjectManager($this);
92+
$this->templateFactoryMock = $this->createMock(FactoryInterface::class);
93+
$this->messageMock = $this->getMockBuilder(MessageInterface::class)
6694
->disableOriginalConstructor()
6795
->setMethods(['setBodyHtml', 'setSubject'])
6896
->getMockForAbstractClass();
69-
$this->objectManagerMock = $this->createMock(\Magento\Framework\ObjectManagerInterface::class);
70-
$this->senderResolverMock = $this->createMock(\Magento\Framework\Mail\Template\SenderResolverInterface::class);
71-
$this->mailTransportFactoryMock = $this->getMockBuilder(
72-
\Magento\Framework\Mail\TransportInterfaceFactory::class
73-
)->disableOriginalConstructor()
97+
98+
$this->emailMessageInterfaceFactoryMock = $this->createMock(EmailMessageInterfaceFactory::class);
99+
$this->mimePartFactoryMock = $this->createMock(MimePartInterfaceFactory::class);
100+
101+
$this->objectManagerMock = $this->createMock(ObjectManagerInterface::class);
102+
$this->senderResolverMock = $this->createMock(SenderResolverInterface::class);
103+
$this->mailTransportFactoryMock = $this->getMockBuilder(TransportInterfaceFactory::class)
104+
->disableOriginalConstructor()
74105
->setMethods(['create'])
75106
->getMock();
76107

@@ -82,7 +113,9 @@ public function setUp()
82113
'objectManager' => $this->objectManagerMock,
83114
'senderResolver' => $this->senderResolverMock,
84115
'mailTransportFactory' => $this->mailTransportFactoryMock,
85-
'messageFactory' => $this->messageFactoryMock
116+
'messageFactory' => $this->messageFactoryMock,
117+
'emailMessageInterfaceFactory' => $this->emailMessageInterfaceFactoryMock,
118+
'mimePartInterfaceFactory' => $this->mimePartFactoryMock,
86119
]
87120
);
88121
}
@@ -92,12 +125,13 @@ public function setUp()
92125
* @param string $bodyText
93126
* @return void
94127
* @SuppressWarnings(PHPMD.ExcessiveMethodLength)
128+
* @throws \Magento\Framework\Exception\LocalizedException
95129
*/
96130
public function testGetTransport(
97131
$templateType = TemplateTypesInterface::TYPE_HTML,
98132
$bodyText = '<h1>Html message</h1>'
99-
) {
100-
$filter = $this->createMock(\Magento\Email\Model\Template\Filter::class);
133+
): void {
134+
$filter = $this->createMock(Filter::class);
101135
$data = [
102136
'template_subject' => 'Email Subject',
103137
'template_text' => $bodyText,
@@ -107,36 +141,33 @@ public function testGetTransport(
107141
];
108142
$vars = ['reason' => 'Reason', 'customer' => 'Customer'];
109143
$options = ['area' => 'frontend', 'store' => 1];
110-
$template = $this->createMock(\Magento\Email\Model\Template::class);
144+
145+
/** @var MimePartInterface|MockObject $mimePartMock */
146+
$mimePartMock = $this->createMock(MimePartInterface::class);
147+
148+
$this->mimePartFactoryMock->expects($this->any())
149+
->method('create')
150+
->willReturn($mimePartMock);
151+
152+
/** @var EmailMessageInterface|MockObject $emailMessage */
153+
$emailMessage = $this->createMock(EmailMessageInterface::class);
154+
155+
$this->emailMessageInterfaceFactoryMock->expects($this->any())
156+
->method('create')
157+
->willReturn($emailMessage);
158+
159+
$template = $this->createMock(Template::class);
111160
$template->expects($this->once())->method('setVars')->with($this->equalTo($vars))->will($this->returnSelf());
112-
$template->expects(
113-
$this->once()
114-
)->method(
115-
'setOptions'
116-
)->with(
117-
$this->equalTo($options)
118-
)->will(
119-
$this->returnSelf()
120-
);
121-
$template->expects($this->once())->method('getSubject')->will($this->returnValue('Email Subject'));
161+
$template->expects($this->once())->method('setOptions')->with($this->equalTo($options))->will($this->returnSelf());
162+
$template->expects($this->once())->method('getSubject')->willReturn('Email Subject');
122163
$template->expects($this->once())->method('setData')->with($this->equalTo($data))->will($this->returnSelf());
123-
$template->expects($this->once())
124-
->method('getProcessedTemplate')
125-
->with($vars)
126-
->willReturn($bodyText);
127-
$template->expects($this->once())
128-
->method('setTemplateFilter')
129-
->with($filter);
130-
131-
$this->templateFactoryMock->expects(
132-
$this->once()
133-
)->method(
134-
'get'
135-
)->with(
136-
$this->equalTo('identifier')
137-
)->will(
138-
$this->returnValue($template)
139-
);
164+
$template->expects($this->once())->method('getProcessedTemplate')->with($vars)->willReturn($bodyText);
165+
$template->expects($this->once())->method('setTemplateFilter')->with($filter);
166+
167+
$this->templateFactoryMock->expects($this->once())
168+
->method('get')
169+
->with($this->equalTo('identifier'))
170+
->willReturn($template);
140171

141172
$this->builder->setTemplateIdentifier(
142173
'identifier'

lib/internal/Magento/Framework/Mail/Test/Unit/Template/TransportBuilderTest.php

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,49 +10,60 @@
1010
use Magento\Framework\App\TemplateTypesInterface;
1111
use Magento\Framework\Mail\EmailMessageInterface;
1212
use Magento\Framework\Mail\EmailMessageInterfaceFactory;
13+
use Magento\Framework\Mail\Message;
14+
use Magento\Framework\Mail\MessageInterfaceFactory;
1315
use Magento\Framework\Mail\MimePartInterface;
1416
use Magento\Framework\Mail\MimePartInterfaceFactory;
17+
use Magento\Framework\Mail\Template\FactoryInterface;
18+
use Magento\Framework\Mail\Template\SenderResolverInterface;
19+
use Magento\Framework\Mail\Template\TransportBuilder;
20+
use Magento\Framework\Mail\TemplateInterface;
21+
use Magento\Framework\Mail\TransportInterface;
22+
use Magento\Framework\Mail\TransportInterfaceFactory;
23+
use Magento\Framework\ObjectManagerInterface;
24+
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
1525
use PHPUnit\Framework\MockObject\MockObject;
26+
use PHPUnit\Framework\TestCase;
1627

1728
/**
1829
* Class TransportBuilderTest
1930
*
2031
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
2132
*/
22-
class TransportBuilderTest extends \PHPUnit\Framework\TestCase
33+
class TransportBuilderTest extends TestCase
2334
{
2435
/**
2536
* @var string
2637
*/
27-
protected $builderClassName = \Magento\Framework\Mail\Template\TransportBuilder::class;
38+
protected $builderClassName = TransportBuilder::class;
2839

2940
/**
30-
* @var \Magento\Framework\Mail\Template\TransportBuilder
41+
* @var TransportBuilder
3142
*/
3243
protected $builder;
3344

3445
/**
35-
* @var \Magento\Framework\Mail\Template\FactoryInterface | \PHPUnit_Framework_MockObject_MockObject
46+
* @var FactoryInterface | \PHPUnit_Framework_MockObject_MockObject
3647
*/
3748
protected $templateFactoryMock;
3849

3950
/**
40-
* @var \Magento\Framework\Mail\Message | \PHPUnit_Framework_MockObject_MockObject
51+
* @var Message | \PHPUnit_Framework_MockObject_MockObject
4152
*/
4253
protected $messageMock;
4354

4455
/**
45-
* @var \Magento\Framework\ObjectManagerInterface | \PHPUnit_Framework_MockObject_MockObject
56+
* @var ObjectManagerInterface | \PHPUnit_Framework_MockObject_MockObject
4657
*/
4758
protected $objectManagerMock;
4859

4960
/**
50-
* @var \Magento\Framework\Mail\Template\SenderResolverInterface | \PHPUnit_Framework_MockObject_MockObject
61+
* @var SenderResolverInterface | \PHPUnit_Framework_MockObject_MockObject
5162
*/
5263
protected $senderResolverMock;
5364

5465
/**
55-
* @var \Magento\Framework\Mail\MessageInterfaceFactory| \PHPUnit_Framework_MockObject_MockObject
66+
* @var MessageInterfaceFactory| \PHPUnit_Framework_MockObject_MockObject
5667
*/
5768
private $messageFactoryMock;
5869

@@ -61,11 +72,6 @@ class TransportBuilderTest extends \PHPUnit\Framework\TestCase
6172
*/
6273
protected $mailTransportFactoryMock;
6374

64-
/**
65-
* @var \Magento\Framework\Mail\EmailMessageInterface|\PHPUnit\Framework\MockObject\MockObject
66-
*/
67-
private $emailMessageMock;
68-
6975
/**
7076
* @var MimePartInterfaceFactory|MockObject
7177
*/
@@ -81,18 +87,17 @@ class TransportBuilderTest extends \PHPUnit\Framework\TestCase
8187
*/
8288
protected function setUp()
8389
{
84-
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
85-
$this->templateFactoryMock = $this->createMock(\Magento\Framework\Mail\Template\FactoryInterface::class);
86-
$this->messageMock = $this->createMock(\Magento\Framework\Mail\Message::class);
87-
$this->emailMessageMock = $this->createMock(\Magento\Framework\Mail\EmailMessageInterface::class);
88-
$this->objectManagerMock = $this->createMock(\Magento\Framework\ObjectManagerInterface::class);
89-
$this->senderResolverMock = $this->createMock(\Magento\Framework\Mail\Template\SenderResolverInterface::class);
90+
$objectManagerHelper = new ObjectManager($this);
91+
$this->templateFactoryMock = $this->createMock(FactoryInterface::class);
92+
$this->messageMock = $this->createMock(Message::class);
93+
$this->objectManagerMock = $this->createMock(ObjectManagerInterface::class);
94+
$this->senderResolverMock = $this->createMock(SenderResolverInterface::class);
9095
$this->mailTransportFactoryMock = $this->getMockBuilder(
91-
\Magento\Framework\Mail\TransportInterfaceFactory::class
96+
TransportInterfaceFactory::class
9297
)->disableOriginalConstructor()
9398
->setMethods(['create'])
9499
->getMockForAbstractClass();
95-
$this->messageFactoryMock = $this->getMockBuilder(\Magento\Framework\Mail\MessageInterfaceFactory::class)
100+
$this->messageFactoryMock = $this->getMockBuilder(MessageInterfaceFactory::class)
96101
->disableOriginalConstructor()
97102
->setMethods(['create'])
98103
->getMockForAbstractClass();
@@ -143,7 +148,7 @@ public function testGetTransport($templateType, $bodyText, $templateNamespace)
143148
->method('create')
144149
->willReturn($emailMessage);
145150

146-
$template = $this->createMock(\Magento\Framework\Mail\TemplateInterface::class);
151+
$template = $this->createMock(TemplateInterface::class);
147152
$template->expects($this->once())->method('setVars')->with($this->equalTo($vars))->willReturnSelf();
148153
$template->expects($this->once())->method('setOptions')->with($this->equalTo($options))->willReturnSelf();
149154
$template->expects($this->once())->method('getSubject')->willReturn('Email Subject');
@@ -155,7 +160,7 @@ public function testGetTransport($templateType, $bodyText, $templateNamespace)
155160
->with($this->equalTo('identifier'), $this->equalTo($templateNamespace))
156161
->willReturn($template);
157162

158-
$transport = $this->createMock(\Magento\Framework\Mail\TransportInterface::class);
163+
$transport = $this->createMock(TransportInterface::class);
159164

160165
$this->mailTransportFactoryMock->expects($this->at(0))
161166
->method('create')
@@ -164,7 +169,7 @@ public function testGetTransport($templateType, $bodyText, $templateNamespace)
164169
$this->builder->setTemplateIdentifier('identifier')->setTemplateVars($vars)->setTemplateOptions($options);
165170

166171
$result = $this->builder->getTransport();
167-
$this->assertInstanceOf(\Magento\Framework\Mail\TransportInterface::class, $result);
172+
$this->assertInstanceOf(TransportInterface::class, $result);
168173
}
169174

170175
/**
@@ -180,7 +185,7 @@ public function testGetTransportWithException()
180185
$vars = ['reason' => 'Reason', 'customer' => 'Customer'];
181186
$options = ['area' => 'frontend', 'store' => 1];
182187

183-
$template = $this->createMock(\Magento\Framework\Mail\TemplateInterface::class);
188+
$template = $this->createMock(TemplateInterface::class);
184189
$template->expects($this->once())->method('setVars')->with($this->equalTo($vars))->willReturnSelf();
185190
$template->expects($this->once())->method('setOptions')->with($this->equalTo($options))->willReturnSelf();
186191
$template->expects($this->once())->method('getType')->willReturn('Unknown');
@@ -191,7 +196,7 @@ public function testGetTransportWithException()
191196

192197
$this->builder->setTemplateIdentifier('identifier')->setTemplateVars($vars)->setTemplateOptions($options);
193198

194-
$this->assertInstanceOf(\Magento\Framework\Mail\TransportInterface::class, $this->builder->getTransport());
199+
$this->assertInstanceOf(TransportInterface::class, $this->builder->getTransport());
195200
}
196201

197202
/**

0 commit comments

Comments
 (0)