-
-
Notifications
You must be signed in to change notification settings - Fork 157
/
Copy pathClientManagerTest.php
94 lines (82 loc) · 2.46 KB
/
ClientManagerTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?php
/*
* File: ClientManagerTest.php
* Category: -
* Author: M.Goldenbaum
* Created: 28.12.22 18:11
* Updated: -
*
* Description:
* -
*/
namespace Tests;
use PHPUnit\Framework\TestCase;
use Webklex\PHPIMAP\Client;
use Webklex\PHPIMAP\ClientManager;
use Webklex\PHPIMAP\Config;
use Webklex\PHPIMAP\Exceptions\MaskNotFoundException;
use Webklex\PHPIMAP\IMAP;
class ClientManagerTest extends TestCase {
/** @var ClientManager $cm */
protected ClientManager $cm;
/**
* Setup the test environment.
*
* @return void
*/
public function setUp(): void {
$this->cm = new ClientManager();
}
/**
* Test if the config can be accessed
*
* @return void
*/
public function testConfigAccessorAccount(): void {
$config = $this->cm->getConfig();
self::assertInstanceOf(Config::class, $config);
self::assertSame("default", $config->get("default"));
self::assertSame("d-M-Y", $config->get("date_format"));
self::assertSame(IMAP::FT_PEEK, $config->get("options.fetch"));
self::assertSame([], $config->get("options.open"));
}
/**
* Test creating a client instance
*
* @throws MaskNotFoundException
*/
public function testMakeClient(): void {
self::assertInstanceOf(Client::class, $this->cm->make([]));
}
/**
* Test accessing accounts
*
* @throws MaskNotFoundException
*/
public function testAccountAccessor(): void {
self::assertSame("default", $this->cm->getConfig()->getDefaultAccount());
self::assertNotEmpty($this->cm->account("default"));
$this->cm->getConfig()->setDefaultAccount("foo");
self::assertSame("foo", $this->cm->getConfig()->getDefaultAccount());
$this->cm->getConfig()->setDefaultAccount("default");
}
/**
* Test setting a config
*
* @throws MaskNotFoundException
*/
public function testSetConfig(): void {
$config = [
"default" => "foo",
"options" => [
"fetch" => IMAP::ST_MSGN,
"open" => "foo"
]
];
$cm = new ClientManager($config);
self::assertSame("foo", $cm->getConfig()->getDefaultAccount());
self::assertInstanceOf(Client::class, $cm->account("foo"));
self::assertSame(IMAP::ST_MSGN, $cm->getConfig()->get("options.fetch"));
self::assertSame(false, is_array($cm->getConfig()->get("options.open")));
}
}