Skip to content

Commit 47514cc

Browse files
authored
Merge pull request #69 from magento-epam/MAGETWO-91493
MAGETWO-91493: MDC Framework Issues. Message passed as a service to T…
2 parents e09ec2d + e113070 commit 47514cc

File tree

3 files changed

+25
-48
lines changed

3 files changed

+25
-48
lines changed

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

+20-46
Original file line numberDiff line numberDiff line change
@@ -45,29 +45,43 @@ class TransportBuilderTest extends \PHPUnit\Framework\TestCase
4545
*/
4646
protected $mailTransportFactoryMock;
4747

48+
/**
49+
* @var \Magento\Framework\Mail\MessageInterfaceFactory | \PHPUnit_Framework_MockObject_MockObject
50+
*/
51+
private $messageFactoryMock;
52+
4853
/**
4954
* @return void
5055
*/
5156
public function setUp()
5257
{
5358
$objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
5459
$this->templateFactoryMock = $this->createMock(\Magento\Framework\Mail\Template\FactoryInterface::class);
55-
$this->messageMock = $this->createMock(\Magento\Framework\Mail\Message::class);
60+
$this->messageMock = $this->getMockBuilder(\Magento\Framework\Mail\MessageInterface::class)
61+
->disableOriginalConstructor()
62+
->setMethods(['setBodyHtml', 'setSubject'])
63+
->getMockForAbstractClass();
5664
$this->objectManagerMock = $this->createMock(\Magento\Framework\ObjectManagerInterface::class);
5765
$this->senderResolverMock = $this->createMock(\Magento\Framework\Mail\Template\SenderResolverInterface::class);
5866
$this->mailTransportFactoryMock = $this->getMockBuilder(
5967
\Magento\Framework\Mail\TransportInterfaceFactory::class
6068
)->disableOriginalConstructor()
6169
->setMethods(['create'])
6270
->getMock();
71+
$this->messageFactoryMock = $this->getMockBuilder(\Magento\Framework\Mail\MessageInterfaceFactory::class)
72+
->disableOriginalConstructor()
73+
->setMethods(['create'])
74+
->getMockForAbstractClass();
75+
$this->messageFactoryMock->expects($this->atLeastOnce())->method('create')->willReturn($this->messageMock);
6376
$this->builder = $objectManagerHelper->getObject(
6477
$this->builderClassName,
6578
[
6679
'templateFactory' => $this->templateFactoryMock,
6780
'message' => $this->messageMock,
6881
'objectManager' => $this->objectManagerMock,
6982
'senderResolver' => $this->senderResolverMock,
70-
'mailTransportFactory' => $this->mailTransportFactoryMock
83+
'mailTransportFactory' => $this->mailTransportFactoryMock,
84+
'messageFactory' => $this->messageFactoryMock
7185
]
7286
);
7387
}
@@ -108,7 +122,7 @@ public function testGetTransport(
108122
$template->expects($this->once())
109123
->method('getProcessedTemplate')
110124
->with($vars)
111-
->will($this->returnValue($bodyText));
125+
->willReturn($bodyText);
112126
$template->expects($this->once())
113127
->method('setTemplateFilter')
114128
->with($filter);
@@ -123,46 +137,8 @@ public function testGetTransport(
123137
$this->returnValue($template)
124138
);
125139

126-
$this->messageMock->expects(
127-
$this->once()
128-
)->method(
129-
'setSubject'
130-
)->with(
131-
$this->equalTo('Email Subject')
132-
)->will(
133-
$this->returnSelf()
134-
);
135-
$this->messageMock->expects(
136-
$this->once()
137-
)->method(
138-
'setBodyHtml'
139-
)->with(
140-
$this->equalTo($bodyText)
141-
)->will(
142-
$this->returnSelf()
143-
);
144-
145-
$transport = $this->createMock(\Magento\Framework\Mail\TransportInterface::class);
146-
147-
$this->mailTransportFactoryMock->expects(
148-
$this->at(0)
149-
)->method(
150-
'create'
151-
)->with(
152-
$this->equalTo(['message' => $this->messageMock])
153-
)->will(
154-
$this->returnValue($transport)
155-
);
156-
157-
$this->objectManagerMock->expects(
158-
$this->at(0)
159-
)->method(
160-
'create'
161-
)->with(
162-
$this->equalTo(\Magento\Framework\Mail\Message::class)
163-
)->will(
164-
$this->returnValue($transport)
165-
);
140+
$this->messageMock->expects($this->once())->method('setBodyHtml')->willReturnSelf();
141+
$this->messageMock->expects($this->once())->method('setSubject')->willReturnSelf();
166142

167143
$this->builder->setTemplateIdentifier(
168144
'identifier'
@@ -174,8 +150,6 @@ public function testGetTransport(
174150
$data
175151
);
176152

177-
$result = $this->builder->getTransport();
178-
179-
$this->assertInstanceOf(\Magento\Framework\Mail\TransportInterface::class, $result);
153+
$this->builder->getTransport();
180154
}
181155
}

lib/internal/Magento/Framework/Mail/Template/TransportBuilder.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
/**
2020
* @api
21+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
2122
*/
2223
class TransportBuilder
2324
{
@@ -116,8 +117,7 @@ public function __construct(
116117
$this->objectManager = $objectManager;
117118
$this->_senderResolver = $senderResolver;
118119
$this->mailTransportFactory = $mailTransportFactory;
119-
$this->messageFactory = $messageFactory ?: \Magento\Framework\App\ObjectManager::getInstance()
120-
->get(MessageInterfaceFactory::class);
120+
$this->messageFactory = $messageFactory ?: $this->objectManager->get(MessageInterfaceFactory::class);
121121
$this->message = $this->messageFactory->create();
122122
}
123123

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

+3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
use Magento\Framework\Mail\MessageInterface;
1111
use Magento\Framework\Mail\MessageInterfaceFactory;
1212

13+
/**
14+
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
15+
*/
1316
class TransportBuilderTest extends \PHPUnit\Framework\TestCase
1417
{
1518
/**

0 commit comments

Comments
 (0)