aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/Migration/BackgroundRepair.php22
-rw-r--r--tests/lib/Migration/BackgroundRepairTest.php19
2 files changed, 10 insertions, 31 deletions
diff --git a/lib/private/Migration/BackgroundRepair.php b/lib/private/Migration/BackgroundRepair.php
index cbc21e4fe12..d542b82d5e1 100644
--- a/lib/private/Migration/BackgroundRepair.php
+++ b/lib/private/Migration/BackgroundRepair.php
@@ -7,9 +7,8 @@
*/
namespace OC\Migration;
-use OC\NeedsUpdateException;
use OC\Repair;
-use OC_App;
+use OCP\App\IAppManager;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\IJobList;
use OCP\BackgroundJob\TimedJob;
@@ -26,6 +25,7 @@ class BackgroundRepair extends TimedJob {
ITimeFactory $time,
private LoggerInterface $logger,
private IJobList $jobList,
+ private IAppManager $appManager,
) {
parent::__construct($time);
$this->setInterval(15 * 60);
@@ -34,7 +34,6 @@ class BackgroundRepair extends TimedJob {
/**
* @param array $argument
* @throws \Exception
- * @throws \OC\NeedsUpdateException
*/
protected function run($argument): void {
if (!isset($argument['app']) || !isset($argument['step'])) {
@@ -44,13 +43,7 @@ class BackgroundRepair extends TimedJob {
}
$app = $argument['app'];
- try {
- $this->loadApp($app);
- } catch (NeedsUpdateException $ex) {
- // as long as the app is not yet done with it's offline migration
- // we better not start with the live migration
- return;
- }
+ $this->appManager->loadApp($app);
$step = $argument['step'];
$this->repair->setRepairSteps([]);
@@ -73,13 +66,4 @@ class BackgroundRepair extends TimedJob {
// remove the job once executed successfully
$this->jobList->remove($this, $this->argument);
}
-
- /**
- * @codeCoverageIgnore
- * @param $app
- * @throws NeedsUpdateException
- */
- protected function loadApp($app): void {
- OC_App::loadApp($app);
- }
}
diff --git a/tests/lib/Migration/BackgroundRepairTest.php b/tests/lib/Migration/BackgroundRepairTest.php
index 585ebc420ad..25ea6088072 100644
--- a/tests/lib/Migration/BackgroundRepairTest.php
+++ b/tests/lib/Migration/BackgroundRepairTest.php
@@ -9,9 +9,9 @@ namespace Test\Migration;
use OC\BackgroundJob\JobList;
use OC\Migration\BackgroundRepair;
-use OC\NeedsUpdateException;
use OC\Repair;
use OC\Repair\Events\RepairStepEvent;
+use OCP\App\IAppManager;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Migration\IOutput;
@@ -48,6 +48,7 @@ class BackgroundRepairTest extends TestCase {
private LoggerInterface $logger;
private IEventDispatcher $dispatcher;
private ITimeFactory $time;
+ private IAppManager $appManager;
private Repair $repair;
protected function setUp(): void {
@@ -63,9 +64,10 @@ class BackgroundRepairTest extends TestCase {
$this->time = $this->createMock(ITimeFactory::class);
$this->time->method('getTime')
->willReturn(999999);
+ $this->appManager = $this->createMock(IAppManager::class);
$this->repair = new Repair($this->dispatcher, $this->logger);
$this->job = $this->getMockBuilder(BackgroundRepair::class)
- ->setConstructorArgs([$this->repair, $this->time, $this->logger, $this->jobList])
+ ->setConstructorArgs([$this->repair, $this->time, $this->logger, $this->jobList, $this->appManager])
->setMethods(['loadApp'])
->getMock();
}
@@ -75,16 +77,6 @@ class BackgroundRepairTest extends TestCase {
$this->job->start($this->jobList);
}
- public function testAppUpgrading(): void {
- $this->jobList->expects($this->never())->method('remove');
- $this->job->expects($this->once())->method('loadApp')->with('test')->willThrowException(new NeedsUpdateException());
- $this->job->setArgument([
- 'app' => 'test',
- 'step' => 'j'
- ]);
- $this->job->start($this->jobList);
- }
-
public function testUnknownStep(): void {
$this->dispatcher->expects($this->never())->method('dispatchTyped');
@@ -103,6 +95,9 @@ class BackgroundRepairTest extends TestCase {
->with($this->equalTo(new RepairStepEvent('A test repair step')));
$this->jobList->expects($this->once())->method('remove');
+ $this->appManager->expects(self::once())
+ ->method('loadApp')
+ ->with('test');
$this->job->setArgument([
'app' => 'test',