Skip to content

Commit 5736de8

Browse files
authored
Merge pull request #234 from plank/fix-createimagevariants-serialization
Fix serialization of CreateImageVariants job
2 parents 92c34f6 + 8b7ebc0 commit 5736de8

File tree

4 files changed

+48
-10
lines changed

4 files changed

+48
-10
lines changed

CHANGELOG.md

+13
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,18 @@
11
# Changelog
22

3+
## 5.0.4 - 2020-12-02
4+
- Fixed serialization of `CreateImageVariants` job.
5+
6+
## 5.0.3 - 2020-10-28
7+
- Fixed docblock of `attachMedia()` and `SyncMedia()` (Thanks @hailwood!)
8+
9+
## 5.0.2 - 2020-10-22
10+
- Fixed additional bugs with the `MediableCollection::delete()` method
11+
- Optimized the execution speed of `MediableCollection::delete()`
12+
13+
## 5.0.1 - 2020-10-22
14+
- fixed notices generated from collection offset access in `MediableCollection::delete()`
15+
316
## 5.0.0 - 2020-10-14
417
- Added support for creating image variants using the intervention/image library. Variants can be created synchronously in the current process or asychronously as queued jobs. Media records keep track of variants created from them.
518
- Fixed Laravel 8+ migration squashing. Database migrations are now loaded from within the package instead of copied to the application's database/migration directory. See UPGRADING.md for steps to avoid conflicts.

src/Jobs/CreateImageVariants.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22

33
namespace Plank\Mediable\Jobs;
44

5-
use Carbon\Traits\Serialization;
65
use Illuminate\Bus\Queueable;
76
use Illuminate\Contracts\Queue\ShouldQueue;
87
use Illuminate\Database\Eloquent\Collection;
98
use Illuminate\Foundation\Bus\Dispatchable;
109
use Illuminate\Queue\InteractsWithQueue;
10+
use Illuminate\Queue\SerializesModels;
1111
use Plank\Mediable\Exceptions\ImageManipulationException;
1212
use Plank\Mediable\ImageManipulator;
1313
use Plank\Mediable\Media;
1414

1515
class CreateImageVariants implements ShouldQueue
1616
{
17-
use Dispatchable, InteractsWithQueue, Queueable, Serialization;
17+
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
1818

1919
/**
2020
* @var string[]

tests/Integration/Jobs/CreateImageVariantsTest.php

+25
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Plank\Mediable\Tests\Integration\Jobs;
44

5+
use GuzzleHttp\Promise\Create;
56
use Illuminate\Database\Eloquent\Collection;
67
use Plank\Mediable\ImageManipulation;
78
use Plank\Mediable\ImageManipulator;
@@ -89,4 +90,28 @@ public function test_it_will_trigger_image_manipulation_recreate()
8990
$job = new CreateImageVariants($model, [$variant1, $variant2], true);
9091
$job->handle();
9192
}
93+
94+
public function test_it_will_serialize_models()
95+
{
96+
$this->useDatabase();
97+
$model = $this->createMedia(['aggregate_type' => 'image']);
98+
$variant = 'foo';
99+
100+
$manipulator = $this->createMock(ImageManipulator::class);
101+
$manipulator->expects($this->once())
102+
->method('validateMedia')
103+
->with($model);
104+
$manipulator->expects($this->any())
105+
->method('getVariantDefinition')
106+
->withConsecutive([$variant])
107+
->willReturn($this->createMock(ImageManipulation::class));
108+
app()->instance(ImageManipulator::class, $manipulator);
109+
110+
$job = new CreateImageVariants($model, [$variant], true);
111+
/** @var CreateImageVariants $result */
112+
$result = unserialize(serialize($job));
113+
$this->assertEquals([$model->getKey()], $result->getModels()->modelKeys());
114+
$this->assertEquals([$variant], $result->getVariantNames());
115+
$this->assertTrue($result->getForceRecreate());
116+
}
92117
}

tests/Integration/MediableTest.php

+8-8
Original file line numberDiff line numberDiff line change
@@ -528,29 +528,29 @@ public function test_it_can_lazy_eager_load_media_with_variants_by_tag_matching_
528528
$this->assertSame($result, $result->loadMedia(['bar', 'foo'], true, true));
529529
$this->assertTrue($result->relationLoaded('media'));
530530
$this->assertEquals([2, 2], $result->media->pluck('id')->toArray());
531-
$this->asserttrue($result->media[0]->relationLoaded('originalMedia'));
532-
$this->asserttrue($result->media[0]->relationLoaded('variants'));
531+
$this->assertTrue($result->media[0]->relationLoaded('originalMedia'));
532+
$this->assertTrue($result->media[0]->relationLoaded('variants'));
533533

534534
$result = SampleMediable::first();
535535
$this->assertSame($result, $result->loadMediaWithVariants(['bar', 'foo'], true));
536536
$this->assertTrue($result->relationLoaded('media'));
537537
$this->assertEquals([2, 2], $result->media->pluck('id')->toArray());
538-
$this->asserttrue($result->media[0]->relationLoaded('originalMedia'));
539-
$this->asserttrue($result->media[0]->relationLoaded('variants'));
538+
$this->assertTrue($result->media[0]->relationLoaded('originalMedia'));
539+
$this->assertTrue($result->media[0]->relationLoaded('variants'));
540540

541541
$result = SampleMediable::first();
542542
$this->assertSame($result, $result->loadMediaMatchAll(['bar', 'foo'], true));
543543
$this->assertTrue($result->relationLoaded('media'));
544544
$this->assertEquals([2, 2], $result->media->pluck('id')->toArray());
545-
$this->asserttrue($result->media[0]->relationLoaded('originalMedia'));
546-
$this->asserttrue($result->media[0]->relationLoaded('variants'));
545+
$this->assertTrue($result->media[0]->relationLoaded('originalMedia'));
546+
$this->assertTrue($result->media[0]->relationLoaded('variants'));
547547

548548
$result = SampleMediable::first();
549549
$this->assertSame($result, $result->loadMediaWithVariantsMatchAll(['bar', 'foo']));
550550
$this->assertTrue($result->relationLoaded('media'));
551551
$this->assertEquals([2, 2], $result->media->pluck('id')->toArray());
552-
$this->asserttrue($result->media[0]->relationLoaded('originalMedia'));
553-
$this->asserttrue($result->media[0]->relationLoaded('variants'));
552+
$this->assertTrue($result->media[0]->relationLoaded('originalMedia'));
553+
$this->assertTrue($result->media[0]->relationLoaded('variants'));
554554
}
555555

556556
public function test_it_uses_custom_collection()

0 commit comments

Comments
 (0)