瀏覽代碼

minor fix

Olivier Massot 3 年之前
父節點
當前提交
7518eeb075
共有 2 個文件被更改,包括 20 次插入8 次删除
  1. 1 1
      src/Service/Cron/Job/CleanTempFiles.php
  2. 19 7
      tests/Service/Cron/Job/CleanTempFilesTest.php

+ 1 - 1
src/Service/Cron/Job/CleanTempFiles.php

@@ -103,7 +103,7 @@ class CleanTempFiles extends BaseCronJob implements CronjobInterface
         $criteria = new Criteria();
         $criteria->where(
             Criteria::expr()?->andX(
-                Criteria::expr()?->eq('isTemporaryFile', 1),
+                Criteria::expr()?->eq('isTemporaryFile', true),
                 Criteria::expr()?->orX(
                     Criteria::expr()?->lt('createDate', $maxDate),
                     Criteria::expr()?->isNull('createDate')

+ 19 - 7
tests/Service/Cron/Job/CleanTempFilesTest.php

@@ -115,18 +115,30 @@ class CleanTempFilesTest extends TestCase
             'List temporary files created before 2022-01-01T12:00:00+00:00'
         );
 
-        $files = new ArrayCollection([
-            $this->getMockBuilder(File::class)->getMock(),
-            $this->getMockBuilder(File::class)->getMock(),
-            $this->getMockBuilder(File::class)->getMock()
-        ]);
+        $file1 = $this->getMockBuilder(File::class)->getMock(); // Temporary, but recent : do not remove
+        $file1->method('getId')->willReturn(1);
+        $file1->method('getCreateDate')->willReturn(new \DateTime('2022-01-02'));
+        $file1->method('getIsTemporaryFile')->willReturn(true);
+
+        $file2 = $this->getMockBuilder(File::class)->getMock(); // Temporary and 1-year-old : remove
+        $file1->method('getId')->willReturn(2);
+        $file2->method('getCreateDate')->willReturn(new \DateTime('2021-01-01'));
+        $file2->method('getIsTemporaryFile')->willReturn(true);
+
+        $file3 = $this->getMockBuilder(File::class)->getMock(); // 2 years old but not temporary : do not remove
+        $file1->method('getId')->willReturn(3);
+        $file3->method('getCreateDate')->willReturn(new \DateTime('2020-01-01'));
+        $file3->method('getIsTemporaryFile')->willReturn(false);
+
+        $files = new ArrayCollection([$file1, $file2, $file3]);
 
         $this->fileRepository
             ->expects(self::once())
             ->method('matching')
             ->with(
-                self::callback(static function (Criteria $c) {
-                    return $c instanceof Criteria; // TODO: trouver un moyen de tester le critère de façon plus précise
+                self::callback(static function (Criteria $c) use ($files) {
+                    $matching = $files->matching($c)->toArray();
+                    return count($matching) === 1 && array_values($matching)[0] === $files[1];
                 })
             )->willReturn($files);