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 0000000..54a8ef6 Binary files /dev/null and b/tests/fixtures/1176_upload.png differ