Skip to content

Commit e3207a6

Browse files
committed
added test
1 parent 478a2ad commit e3207a6

File tree

1 file changed

+144
-0
lines changed

1 file changed

+144
-0
lines changed
Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
<?php
2+
3+
/**
4+
* OpenMage
5+
*
6+
* This source file is subject to the Open Software License (OSL 3.0)
7+
* that is bundled with this package in the file LICENSE.txt.
8+
* It is also available at https://opensource.org/license/osl-3-0-php
9+
*
10+
* @category OpenMage
11+
* @package OpenMage_Tests
12+
* @license https://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
13+
*/
14+
15+
declare(strict_types=1);
16+
17+
namespace OpenMage\Tests\Unit\Mage\Newsletter\Model;
18+
19+
use Generator;
20+
use Mage;
21+
use Mage_Core_Exception;
22+
use Mage_Newsletter_Model_Template as Subject;
23+
use PHPUnit\Framework\TestCase;
24+
25+
class TemplateTest extends TestCase
26+
{
27+
public Subject $subject;
28+
29+
public function setUp(): void
30+
{
31+
Mage::app();
32+
$this->subject = Mage::getModel('newsletter/template');
33+
}
34+
35+
/**
36+
* @dataProvider validateTemplateDataProvider
37+
* @group Mage_Newsletter
38+
* @group Mage_Newsletter_Model
39+
*/
40+
public function testValidate(?string $expected, array $methods): void
41+
{
42+
$this->subject->setTemplateCode($methods['setTemplateCode']);
43+
$this->subject->setTemplateSenderEmail($methods['setTemplateSenderEmail']);
44+
$this->subject->setTemplateSenderName($methods['setTemplateSenderName']);
45+
$this->subject->setTemplateSubject($methods['setTemplateSubject']);
46+
$this->subject->setTemplateText($methods['setTemplateText']);
47+
$this->subject->setTemplateType($methods['setTemplateType']);
48+
49+
if ($expected) {
50+
$this->expectException(Mage_Core_Exception::class);
51+
$this->expectExceptionMessage($expected);
52+
} else {
53+
$this->expectNotToPerformAssertions();
54+
}
55+
56+
$this->subject->validate();
57+
}
58+
59+
public function validateTemplateDataProvider(): Generator
60+
{
61+
$validData = [
62+
'setTemplateCode' => 'Valid Code',
63+
'setTemplateSenderEmail' => '[email protected]',
64+
'setTemplateSenderName' => 'Sender Name',
65+
'setTemplateSubject' => 'Valid Subject',
66+
'setTemplateText' => 'Valid Template Text',
67+
'setTemplateType' => '1',
68+
];
69+
70+
yield 'valid data' => [
71+
null,
72+
$validData,
73+
];
74+
75+
$data = $validData;
76+
$data['setTemplateCode'] = null;
77+
yield 'missing template code' => [
78+
'You must give a non-empty value for field \'template_code\'',
79+
$data,
80+
];
81+
82+
$data = $validData;
83+
$data['setTemplateSenderEmail'] = 'invalid-email';
84+
yield 'invalid sender email' => [
85+
'\'invalid-email\' is not a valid email address in the basic format local-part@hostname',
86+
$data,
87+
];
88+
89+
$data = $validData;
90+
$data['setTemplateSenderName'] = null;
91+
yield 'missing sender name' => [
92+
'You must give a non-empty value for field \'template_sender_name\'',
93+
$data,
94+
];
95+
96+
$data = $validData;
97+
$data['setTemplateSubject'] = null;
98+
yield 'missing template subject' => [
99+
null,
100+
$data,
101+
];
102+
103+
$data = $validData;
104+
$data['setTemplateText'] = null;
105+
yield 'missing template text' => [
106+
null,
107+
$data,
108+
];
109+
110+
$data = $validData;
111+
$data['setTemplateType'] = null;
112+
yield 'missing template type' => [
113+
'You must give a non-empty value for field \'template_type\'',
114+
$data,
115+
];
116+
}
117+
118+
/**
119+
* @group Mage_Newsletter
120+
* @group Mage_Newsletter_Model
121+
*/
122+
public function testLoadByCode(): void
123+
{
124+
$this->assertInstanceOf(Subject::class, $this->subject->loadByCode('test_code'));
125+
}
126+
127+
/**
128+
* @group Mage_Newsletter
129+
* @group Mage_Newsletter_Model
130+
*/
131+
public function testIsValidForSend(): void
132+
{
133+
$this->assertIsBool($this->subject->isValidForSend());
134+
}
135+
136+
/**
137+
* @group Mage_Newsletter
138+
* @group Mage_Newsletter_Model
139+
*/
140+
public function testGetProcessedTemplate(): void
141+
{
142+
$this->assertIsString($this->subject->getProcessedTemplate(['key' => 'value']));
143+
}
144+
}

0 commit comments

Comments
 (0)