Fix RepairTest

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
pull/33640/head
Côme Chilliet 2 years ago
parent a2a7150d6d
commit 5d313da709
No known key found for this signature in database
GPG Key ID: A3E2F658B28C760A
  1. 45
      tests/lib/RepairTest.php

@ -8,14 +8,19 @@
namespace Test;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Migration\IRepairStep;
use OC\Repair;
use OC\Repair\Events\RepairInfoEvent;
use OC\Repair\Events\RepairStepEvent;
use OC\Repair\Events\RepairWarningEvent;
use OC\Repair\Events\RepairErrorEvent;
use Psr\Log\LoggerInterface;
use Symfony\Component\EventDispatcher\EventDispatcher;
class RepairStepTest implements IRepairStep {
private $warning;
class TestRepairStep implements IRepairStep {
private bool $warning;
public function __construct($warning = false) {
public function __construct(bool $warning = false) {
$this->warning = $warning;
}
@ -33,28 +38,27 @@ class RepairStepTest implements IRepairStep {
}
class RepairTest extends TestCase {
/** @var \OC\Repair */
private $repair;
private Repair $repair;
/** @var string[] */
private $outputArray;
private array $outputArray = [];
protected function setUp(): void {
parent::setUp();
$dispatcher = new EventDispatcher();
$dispatcher = \OC::$server->get(IEventDispatcher::class);
$this->repair = new \OC\Repair([], $dispatcher, $this->createMock(LoggerInterface::class));
$dispatcher->addListener('\OC\Repair::warning', function ($event) {
/** @var \Symfony\Component\EventDispatcher\GenericEvent $event */
$this->outputArray[] = 'warning: ' . $event->getArgument(0);
$dispatcher->addListener(RepairWarningEvent::class, function (RepairWarningEvent $event) {
$this->outputArray[] = 'warning: ' . $event->getMessage();
});
$dispatcher->addListener('\OC\Repair::info', function ($event) {
/** @var \Symfony\Component\EventDispatcher\GenericEvent $event */
$this->outputArray[] = 'info: ' . $event->getArgument(0);
$dispatcher->addListener(RepairInfoEvent::class, function (RepairInfoEvent $event) {
$this->outputArray[] = 'info: ' . $event->getMessage();
});
$dispatcher->addListener('\OC\Repair::step', function ($event) {
/** @var \Symfony\Component\EventDispatcher\GenericEvent $event */
$this->outputArray[] = 'step: ' . $event->getArgument(0);
$dispatcher->addListener(RepairStepEvent::class, function (RepairStepEvent $event) {
$this->outputArray[] = 'step: ' . $event->getStepName();
});
$dispatcher->addListener(RepairErrorEvent::class, function (RepairErrorEvent $event) {
$this->outputArray[] = 'error: ' . $event->getMessage();
});
}
@ -88,7 +92,7 @@ class RepairTest extends TestCase {
$mock = $this->createMock(TestRepairStep::class);
$mock->expects($this->any())
->method('run')
->will($this->throwException(new \Exception()));
->will($this->throwException(new \Exception('Exception text')));
$mock->expects($this->any())
->method('getName')
->willReturn('Exception Test');
@ -103,11 +107,14 @@ class RepairTest extends TestCase {
$thrown = true;
}
$this->assertTrue($thrown);
$this->assertFalse($thrown);
// jump out after exception
$this->assertEquals(
[
'step: Exception Test',
'error: Exception text',
'step: Test Name',
'info: Simulated info',
],
$this->outputArray
);
Loading…
Cancel
Save