33
44namespace Imahmood \FileStorage \Tests ;
55
6- use Illuminate \Http \Testing \File ;
7- use Illuminate \Http \UploadedFile ;
8- use Illuminate \Support \Facades \Auth ;
9- use Illuminate \Support \Facades \Queue ;
10- use Illuminate \Support \Facades \Storage ;
11- use Imahmood \FileStorage \Config \ConfigurationFactory ;
126use Imahmood \FileStorage \FileStorage ;
13- use Imahmood \FileStorage \Jobs \GeneratePreview ;
14- use Imahmood \FileStorage \Jobs \OptimizeImage ;
157use Imahmood \FileStorage \Models \Media ;
168use Imahmood \FileStorage \Tests \TestSupport \Enums \TestDocumentType ;
179use Imahmood \FileStorage \Tests \TestSupport \Models \TestUserModel ;
10+ use Imahmood \FileStorage \Tests \TestSupport \UploadedFile ;
1811
1912class FileStorageTest extends TestCase
2013{
21- private FileStorage $ fileStorage ;
22-
23- private File $ testFile ;
24-
25- protected function setUp (): void
26- {
27- parent ::setUp ();
28-
29- $ config = ConfigurationFactory::create ([
30- 'disk ' => 'media ' ,
31- 'queue ' => 'media ' ,
32- 'max_dimension ' => 2000 ,
33- 'preview_dimension ' => 300 ,
34- 'generate_preview ' => true ,
35- ]);
36-
37- $ this ->fileStorage = new FileStorage ($ config );
38-
39- $ path = __DIR__ .'/TestSupport/assets/avatar.JPG ' ;
40- $ this ->testFile = UploadedFile::fake ()->create ($ path , file_get_contents ($ path ));
41-
42- Queue::fake ();
43- Storage::fake ('media ' );
44- Auth::partialMock ()->shouldReceive ('id ' )->zeroOrMoreTimes ()->andReturn (1 );
45- }
46-
4714 public function testCreateMedia (): void
4815 {
49- $ media = $ this ->fileStorage ->create (
16+ $ fileStorage = app (FileStorage::class);
17+ $ media = $ fileStorage ->create (
5018 type: TestDocumentType::AVATAR ,
5119 relatedTo: new TestUserModel (),
52- uploadedFile: $ this -> testFile ,
20+ uploadedFile: UploadedFile:: fake ( ' jpg ' ) ,
5321 );
5422
5523 $ this ->assertNull ($ media ->preview );
5624 $ this ->assertSame ($ media ->type , TestDocumentType::AVATAR ->value );
57- $ this ->assertSame ('jpg ' , pathinfo ($ media ->file_name , PATHINFO_EXTENSION ));
58-
59- Queue::assertPushedWithChain (OptimizeImage::class, [
60- GeneratePreview::class,
61- ]);
25+ $ this ->assertStringEndsWith ('.jpg ' , $ media ->file_name );
6226 }
6327
6428 public function testUpdateMedia (): void
@@ -71,30 +35,28 @@ public function testUpdateMedia(): void
7135 'type ' => TestDocumentType::AVATAR ,
7236 ]);
7337
74- $ relatedModel = new TestUserModel ();
75-
76- $ updatedMedia = $ this ->fileStorage ->update (
38+ $ fileStorage = app (FileStorage::class);
39+ $ updatedMedia = $ fileStorage ->update (
7740 type: TestDocumentType::OTHER ,
78- relatedTo: $ relatedModel ,
41+ relatedTo: new TestUserModel () ,
7942 media: clone $ originalMedia ,
80- uploadedFile: $ this -> testFile ,
43+ uploadedFile: UploadedFile:: fake ( ' jpg ' ) ,
8144 );
8245
8346 $ this ->assertNotSame ($ updatedMedia ->file_name , $ originalMedia ->file_name );
8447 $ this ->assertNull ($ updatedMedia ->preview );
8548 $ this ->assertSame ($ updatedMedia ->type , TestDocumentType::OTHER ->value );
86-
87- Queue::assertPushedWithChain (OptimizeImage::class, [
88- GeneratePreview::class,
89- ]);
49+ $ this ->assertStringEndsWith ('.jpg ' , $ updatedMedia ->file_name );
9050 }
9151
9252 public function testDeleteMedia (): void
9353 {
9454 /** @var \Imahmood\FileStorage\Models\Media $media */
9555 $ media = Media::factory ()->create ();
9656
97- $ result = $ this ->fileStorage ->delete ($ media );
57+ $ fileStorage = app (FileStorage::class);
58+ $ result = $ fileStorage ->delete ($ media );
59+
9860 $ this ->assertTrue ($ result );
9961 }
10062}
0 commit comments