From a37fe3bcf0668977c1478778ee5fdaa0ab63e8a1 Mon Sep 17 00:00:00 2001 From: Daniel Date: Tue, 5 Mar 2024 17:34:26 +0100 Subject: [PATCH] test fixes --- src/Factory/ProductFactory.php | 2 +- src/Factory/UserFactory.php | 2 +- tests/Functional/ContactResourceTest.php | 4 +- tests/Functional/MediaObjectResourceTest.php | 8 +- tests/Functional/PartnerResourceTest.php | 4 +- tests/Functional/ProductResourceTest.php | 76 +++++++++++++++++++ tests/fixtures/1176_upload.png | Bin 0 -> 3989 bytes 7 files changed, 86 insertions(+), 10 deletions(-) create mode 100644 tests/Functional/ProductResourceTest.php create mode 100644 tests/fixtures/1176_upload.png diff --git a/src/Factory/ProductFactory.php b/src/Factory/ProductFactory.php index 2de7927..f52fe58 100644 --- a/src/Factory/ProductFactory.php +++ b/src/Factory/ProductFactory.php @@ -50,7 +50,7 @@ final class ProductFactory extends ModelFactory return [ 'name' => self::faker()->randomElement(FakeValues::PRODUCTS), 'description' => self::faker()->text(), - 'image' => MediaObjectProductFactory::random(), + 'image' => MediaObjectProductFactory::createOne(), ]; } diff --git a/src/Factory/UserFactory.php b/src/Factory/UserFactory.php index fe8b75b..cc85b0f 100644 --- a/src/Factory/UserFactory.php +++ b/src/Factory/UserFactory.php @@ -52,7 +52,7 @@ final class UserFactory extends ModelFactory 'email' => self::faker()->email(), 'firstName' => self::faker()->firstName(), 'lastName' => self::faker()->lastName(), - 'image' => MediaObjectUserFactory::random(), + 'image' => MediaObjectUserFactory::createOne(), 'password' => "test", 'roles' => [], ]; diff --git a/tests/Functional/ContactResourceTest.php b/tests/Functional/ContactResourceTest.php index 8484b5d..fabae5e 100644 --- a/tests/Functional/ContactResourceTest.php +++ b/tests/Functional/ContactResourceTest.php @@ -56,7 +56,7 @@ class ContactResourceTest extends KernelTestCase 'lastName' => 'Test', 'partner' => '/api/partners/' . $partner->getId(), 'birthday' => '1984-02-10', - 'image' => '/api/medias/' . $mediaObject->getId(), + 'image' => '/api/media/' . $mediaObject->getId(), 'position' => 'CEO', 'phone' => '123456789', 'email' => 'peter@test2.de', @@ -80,7 +80,7 @@ class ContactResourceTest extends KernelTestCase ; $this->browser() - ->delete('/api/medias/' . $mediaObject->getId(), [ + ->delete('/api/media/' . $mediaObject->getId(), [ 'headers' => [ 'Authorization' => 'Bearer ' . $token, ], diff --git a/tests/Functional/MediaObjectResourceTest.php b/tests/Functional/MediaObjectResourceTest.php index 23ac1c3..ab81ccc 100644 --- a/tests/Functional/MediaObjectResourceTest.php +++ b/tests/Functional/MediaObjectResourceTest.php @@ -53,7 +53,7 @@ class MediaObjectResourceTest extends KernelTestCase $token = $this->JWTManager->create($user->object()); $this->browser() - ->post('/api/medias', [ + ->post('/api/media', [ 'headers' => [ 'Authorization' => 'Bearer ' . $token, 'Content-Type' => 'multipart/form-data' @@ -72,14 +72,14 @@ class MediaObjectResourceTest extends KernelTestCase 'Authorization' => 'Bearer ' . $token, ], 'json' => [ - 'logo' => '/api/medias/1' + 'logo' => '/api/media/1' ] ]) ->assertSuccessful() ; $this->browser() - ->delete('/api/medias/1', [ + ->delete('/api/media/1', [ 'headers' => [ 'Authorization' => 'Bearer ' . $token, 'Content-Type' => 'multipart/form-data' @@ -102,7 +102,7 @@ class MediaObjectResourceTest extends KernelTestCase ); $token = $this->JWTManager->create($user->object()); $this->browser() - ->delete('/api/medias/' . $mediaObject->getId(), [ + ->delete('/api/media/' . $mediaObject->getId(), [ 'headers' => [ 'Authorization' => 'Bearer ' . $token, 'Content-Type' => 'multipart/form-data' diff --git a/tests/Functional/PartnerResourceTest.php b/tests/Functional/PartnerResourceTest.php index 7abfea0..f728b5d 100644 --- a/tests/Functional/PartnerResourceTest.php +++ b/tests/Functional/PartnerResourceTest.php @@ -55,7 +55,7 @@ class PartnerResourceTest extends KernelTestCase 'city' => 'test city', 'country' => 'test country', 'website' => 'wwe.test.de', - 'logo' => '/api/medias/' . $mediaObject->getId(), + 'logo' => '/api/media/' . $mediaObject->getId(), ], 'headers' => [ 'Authorization' => 'Bearer ' . $token, @@ -79,7 +79,7 @@ class PartnerResourceTest extends KernelTestCase ; $this->browser() - ->delete('/api/medias/' . $mediaObject->getId(), [ + ->delete('/api/media/' . $mediaObject->getId(), [ 'headers' => [ 'Authorization' => 'Bearer ' . $token, ], diff --git a/tests/Functional/ProductResourceTest.php b/tests/Functional/ProductResourceTest.php new file mode 100644 index 0000000..bf988c1 --- /dev/null +++ b/tests/Functional/ProductResourceTest.php @@ -0,0 +1,76 @@ + + * @date 12.12.23 + */ + + +namespace App\Tests\Functional; + +use App\Factory\ContactFactory; +use App\Factory\MediaObjectLogoFactory; +use App\Factory\MediaObjectContactFactory; +use App\Factory\MediaObjectProductFactory; +use App\Factory\MediaObjectUserFactory; +use App\Factory\PartnerFactory; +use App\Factory\PostingFactory; +use App\Factory\UserFactory; +use Lexik\Bundle\JWTAuthenticationBundle\Services\JWTTokenManagerInterface; +use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; +use Zenstruck\Browser\Test\HasBrowser; +use Zenstruck\Foundry\Test\Factories; +use Zenstruck\Foundry\Test\ResetDatabase; + +class ProductResourceTest extends KernelTestCase +{ + use HasBrowser; + use ResetDatabase; + use Factories; + + private JWTTokenManagerInterface $JWTManager; + + protected function setUp(): void + { + parent::setUp(); + $this->JWTManager = self::getContainer()->get('lexik_jwt_authentication.jwt_manager'); + } + + public function testPostProduct(): void + { + $user = UserFactory::createOne( + [ + 'email' => 'peter@test.de', + 'firstName' => 'Peter', + 'lastName' => 'Test', + 'password' => 'test', + ] + ); + + $mediaObject = MediaObjectProductFactory::createOne(); + $token = $this->JWTManager->create($user->object()); + + $this->browser() + ->post('/api/products' , [ + 'json' => [ + 'name' => 'Test', + 'description' => 'more test', + 'image' => '/api/media/' . $mediaObject->getId(), + ], + 'headers' => [ + 'Authorization' => 'Bearer ' . $token, + ] + ]) + ->assertSuccessful() + ; + + $this->browser() + ->get('/api/products', [ + 'headers' => [ + 'Authorization' => 'Bearer ' . $token, + ], + ]) + ->assertSuccessful() + ->assertJsonMatches('"hydra:totalItems"', 1) + ; + } +} \ No newline at end of file diff --git a/tests/fixtures/1176_upload.png b/tests/fixtures/1176_upload.png new file mode 100644 index 0000000000000000000000000000000000000000..54a8ef6d64ec964458d7f3b493346842901e721f GIT binary patch literal 3989 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 E09R5S9smFU literal 0 HcmV?d00001