ILIAS  release_8 Revision v8.24
ilMailTemplateRepositoryTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
26{
31 {
32 $db = $this->getMockBuilder(ilDBInterface::class)->getMock();
33
34 $repository = new ilMailTemplateRepository($db);
35
36 $templateId = 666;
37
38 $template = new ilMailTemplate();
39 $template->setTitle('phpunit');
40 $template->setSubject('FooBar');
41 $template->setMessage('FooBar');
42 $template->setLang('de');
43 $template->setContext('4711');
44 $template->setAsDefault(true);
45
46 $db->expects($this->once())->method('nextId')->willReturn($templateId);
47 $db->expects($this->once())->method('insert');
48
49 $repository->store($template);
50
51 $this->assertSame($templateId, $template->getTplId());
52
53 return $template;
54 }
55
61 {
62 $db = $this->getMockBuilder(ilDBInterface::class)->getMock();
63
64 $repository = new ilMailTemplateRepository($db);
65
66 $db->expects($this->once())->method('update');
67
68 $repository->store($template);
69
70 return $template;
71 }
72
77 public function testEntityCanBeDeleted(ilMailTemplate $template): void
78 {
79 $db = $this->getMockBuilder(ilDBInterface::class)->getMock();
80
81 $repository = new ilMailTemplateRepository($db);
82
83 $db->expects($this->once())->method('manipulate');
84
85 $repository->deleteByIds([$template->getTplId()]);
86 }
87
91 public function testTemplateCanBeFoundById(): void
92 {
93 $db = $this->getMockBuilder(ilDBInterface::class)->getMock();
94 $statement = $this->getMockBuilder(ilDBStatement::class)->getMock();
95
96 $templateId = 666;
97
98 $emptyTemplate = new ilMailTemplate();
99 $emptyTemplate->setTplId($templateId);
100
101 $db->expects($this->once())->method('queryF')->willReturn($statement);
102 $db->expects($this->once())->method('numRows')->willReturn(1);
103 $db->expects($this->once())->method('fetchAssoc')->willReturn($emptyTemplate->toArray());
104
105 $repository = new ilMailTemplateRepository($db);
106 $template = $repository->findById(4711);
107
108 $this->assertSame($templateId, $template->getTplId());
109 }
110
115 {
116 $this->expectException(OutOfBoundsException::class);
117
118 $db = $this->getMockBuilder(ilDBInterface::class)->getMock();
119 $statement = $this->getMockBuilder(ilDBStatement::class)->getMock();
120
121 $db->expects($this->once())->method('queryF')->willReturn($statement);
122 $db->expects($this->once())->method('numRows')->willReturn(0);
123 $db->expects($this->never())->method('fetchAssoc');
124
125 $repository = new ilMailTemplateRepository($db);
126 $repository->findById(4711);
127 }
128}
Class ilMailBaseTest.
Class ilMailTemplateRepository.
testEntityCanBeModified(ilMailTemplate $template)
@depends testEntityCanBeSaved
testEntityCanBeDeleted(ilMailTemplate $template)
@depends testEntityCanBeModified
Class ilMailTemplateRepository.
Class ilMailTemplate.