createMock(IVersionBackend::class); $backend->method('useBackendForStorage') ->willReturn($shouldUse); return $backend; } private function getStorage(string $class): IStorage&MockObject { return $this->getMockBuilder($class) ->disableOriginalConstructor() ->onlyMethods(array_diff(get_class_methods($class), ['instanceOfStorage'])) ->getMock(); } public function testGetBackendSingle(): void { $dispatcher = $this->createMock(IEventDispatcher::class); $manager = new VersionManager($dispatcher); $backend = $this->getBackend(); $manager->registerBackend(IStorage::class, $backend); $this->assertEquals($backend, $manager->getBackendForStorage($this->getStorage(Local::class))); } public function testGetBackendMoreSpecific(): void { $dispatcher = $this->createMock(IEventDispatcher::class); $manager = new VersionManager($dispatcher); $backend1 = $this->getBackend(); $backend2 = $this->getBackend(); $manager->registerBackend(IStorage::class, $backend1); $manager->registerBackend(Local::class, $backend2); $this->assertEquals($backend2, $manager->getBackendForStorage($this->getStorage(Local::class))); } public function testGetBackendNoUse(): void { $dispatcher = $this->createMock(IEventDispatcher::class); $manager = new VersionManager($dispatcher); $backend1 = $this->getBackend(); $backend2 = $this->getBackend(false); $manager->registerBackend(IStorage::class, $backend1); $manager->registerBackend(Local::class, $backend2); $this->assertEquals($backend1, $manager->getBackendForStorage($this->getStorage(Local::class))); } public function testGetBackendMultiple(): void { $dispatcher = $this->createMock(IEventDispatcher::class); $manager = new VersionManager($dispatcher); $backend1 = $this->getBackend(); $backend2 = $this->getBackend(false); $backend3 = $this->getBackend(); $manager->registerBackend(IStorage::class, $backend1); $manager->registerBackend(Local::class, $backend2); $manager->registerBackend(Local::class, $backend3); $this->assertEquals($backend3, $manager->getBackendForStorage($this->getStorage(Local::class))); } public function testRollbackSuccess(): void { $versionMock = $this->createMock(IVersion::class); $backendMock = $this->createMock(IVersionBackend::class); $backendMock->expects($this->once()) ->method('rollback') ->with($versionMock) ->willReturn(true); $versionMock->method('getBackend')->willReturn($backendMock); $dispatcherMock = $this->createMock(IEventDispatcher::class); $dispatcherMock->expects($this->once()) ->method('dispatchTyped') ->with($this->isInstanceOf(VersionRestoredEvent::class)); $manager = new VersionManager($dispatcherMock); $this->assertTrue($manager->rollback($versionMock)); } public function testRollbackNull(): void { $versionMock = $this->createMock(IVersion::class); $backendMock = $this->createMock(IVersionBackend::class); $backendMock->expects($this->once()) ->method('rollback') ->with($versionMock) ->willReturn(null); $versionMock->method('getBackend')->willReturn($backendMock); $dispatcherMock = $this->createMock(IEventDispatcher::class); $dispatcherMock->expects($this->once()) ->method('dispatchTyped') ->with($this->isInstanceOf(VersionRestoredEvent::class)); $manager = new VersionManager($dispatcherMock); $this->assertNull($manager->rollback($versionMock)); } public function testRollbackFailure(): void { $versionMock = $this->createMock(IVersion::class); $backendMock = $this->createMock(IVersionBackend::class); $backendMock->expects($this->once()) ->method('rollback') ->with($versionMock) ->willReturn(false); $versionMock->method('getBackend')->willReturn($backendMock); $dispatcherMock = $this->createMock(IEventDispatcher::class); $dispatcherMock->expects($this->never())->method('dispatchTyped'); $manager = new VersionManager($dispatcherMock); $this->assertFalse($manager->rollback($versionMock)); } } tion> Rapid spam filtering system: https://github.com/rspamd/rspamdwww-data
aboutsummaryrefslogtreecommitdiffstats
path: root/.luacheckrc
blob: 353bee41da244bdbb064c186497dec9498301a82 (plain)
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