mirror of
https://github.com/Sylius/Sylius.git
synced 2026-07-14 17:10:53 +00:00
minor #15865 [API][Shop] Minor clean up of address contract tests (GSadee)
This PR was merged into the 1.13 branch. Discussion ---------- | Q | A | |-----------------|--------------------------------------------------------------| | Branch? | 1.13| | Bug fix? | no | | New feature? | no | | BC breaks? | no | | Deprecations? | no<!-- don't forget to update the UPGRADE-*.md file --> | | Related tickets | | | License | MIT | <!-- - Bug fixes must be submitted against the 1.12 branch - Features and deprecations must be submitted against the 1.13 branch - Make sure that the correct base branch is set To be sure you are not breaking any Backward Compatibilities, check the documentation: https://docs.sylius.com/en/latest/book/organization/backward-compatibility-promise.html --> Commits ------- [API][Shop] Minor clean up of address contract tests [API][Admin] Fix address contract tests
This commit is contained in:
commit
38ecc8b2e4
14 changed files with 125 additions and 145 deletions
|
|
@ -9,8 +9,6 @@ Sylius\Component\Core\Model\Address:
|
||||||
city: "New York"
|
city: "New York"
|
||||||
postcode: "00000"
|
postcode: "00000"
|
||||||
phoneNumber: "123456789"
|
phoneNumber: "123456789"
|
||||||
provinceCode: "999"
|
|
||||||
provinceName: "east"
|
|
||||||
|
|
||||||
Sylius\Component\Core\Model\ShopUser:
|
Sylius\Component\Core\Model\ShopUser:
|
||||||
shop_user_{tony}:
|
shop_user_{tony}:
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@
|
||||||
"phoneNumber": "123456789",
|
"phoneNumber": "123456789",
|
||||||
"company": "CocaCola",
|
"company": "CocaCola",
|
||||||
"countryCode": "US",
|
"countryCode": "US",
|
||||||
"provinceCode": "999",
|
"provinceCode": null,
|
||||||
"provinceName": "east",
|
"provinceName": null,
|
||||||
"street": "Green Avenue",
|
"street": "Green Avenue",
|
||||||
"city": "New York",
|
"city": "New York",
|
||||||
"postcode": "00000"
|
"postcode": "00000"
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,8 @@
|
||||||
"city": "New York",
|
"city": "New York",
|
||||||
"postcode": "00000",
|
"postcode": "00000",
|
||||||
"countryCode": "US",
|
"countryCode": "US",
|
||||||
"provinceCode": "999",
|
"provinceCode": null,
|
||||||
"provinceName": "east"
|
"provinceName": null
|
||||||
},
|
},
|
||||||
"logged_at": @date@
|
"logged_at": @date@
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"@context": "\/api\/v2\/contexts\/Address",
|
|
||||||
"@id": "\/api\/v2\/shop\/addresses\/@integer@",
|
|
||||||
"@type": "Address",
|
|
||||||
"id": "@integer@",
|
|
||||||
"firstName":"TEST",
|
|
||||||
"lastName":"TEST",
|
|
||||||
"phoneNumber":"666111333",
|
|
||||||
"company":"Potato Corp.",
|
|
||||||
"countryCode":"US",
|
|
||||||
"provinceCode":"US-MI",
|
|
||||||
"provinceName":null,
|
|
||||||
"street":"Top secret",
|
|
||||||
"city":"Nebraska",
|
|
||||||
"postcode":"12343"
|
|
||||||
}
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"@context": "\/api\/v2\/contexts\/Address",
|
|
||||||
"@id": "\/api\/v2\/shop\/addresses\/@integer@",
|
|
||||||
"@type": "Address",
|
|
||||||
"id": "@integer@",
|
|
||||||
"firstName":"TEST",
|
|
||||||
"lastName":"TEST",
|
|
||||||
"phoneNumber":"666111333",
|
|
||||||
"company":"Potato Corp.",
|
|
||||||
"countryCode":"DE",
|
|
||||||
"provinceCode":null,
|
|
||||||
"provinceName":"Munich",
|
|
||||||
"street":"Top secret",
|
|
||||||
"city":"Nebraska",
|
|
||||||
"postcode":"12343"
|
|
||||||
}
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
"@context": "\/api\/v2\/contexts\/Address",
|
|
||||||
"@id": "\/api\/v2\/shop\/addresses\/@integer@",
|
|
||||||
"@type": "Address",
|
|
||||||
"id": "@integer@",
|
|
||||||
"firstName":"TEST",
|
|
||||||
"lastName":"TEST",
|
|
||||||
"phoneNumber":"666111333",
|
|
||||||
"company":"Potato Corp.",
|
|
||||||
"countryCode":"DE",
|
|
||||||
"provinceCode":null,
|
|
||||||
"provinceName":null,
|
|
||||||
"street":"Top secret",
|
|
||||||
"city":"Nebraska",
|
|
||||||
"postcode":"12343"
|
|
||||||
}
|
|
||||||
|
|
@ -8,8 +8,8 @@
|
||||||
"phoneNumber": "123456789",
|
"phoneNumber": "123456789",
|
||||||
"company": "CocaCola",
|
"company": "CocaCola",
|
||||||
"countryCode": "US",
|
"countryCode": "US",
|
||||||
"provinceCode": "999",
|
"provinceCode": null,
|
||||||
"provinceName": "east",
|
"provinceName": null,
|
||||||
"street": "Green Avenue",
|
"street": "Green Avenue",
|
||||||
"city": "New York",
|
"city": "New York",
|
||||||
"postcode": "00000"
|
"postcode": "00000"
|
||||||
|
|
@ -12,8 +12,8 @@
|
||||||
"phoneNumber": "123456789",
|
"phoneNumber": "123456789",
|
||||||
"company": "CocaCola",
|
"company": "CocaCola",
|
||||||
"countryCode": "US",
|
"countryCode": "US",
|
||||||
"provinceCode": "999",
|
"provinceCode": null,
|
||||||
"provinceName": "east",
|
"provinceName": null,
|
||||||
"street": "Green Avenue",
|
"street": "Green Avenue",
|
||||||
"city": "New York",
|
"city": "New York",
|
||||||
"postcode": "00000"
|
"postcode": "00000"
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"@context": "\/api\/v2\/contexts\/Address",
|
||||||
|
"@id": "\/api\/v2\/shop\/addresses\/@integer@",
|
||||||
|
"@type": "Address",
|
||||||
|
"id": "@integer@",
|
||||||
|
"firstName": "TEST",
|
||||||
|
"lastName": "TEST",
|
||||||
|
"phoneNumber": "666111333",
|
||||||
|
"company": "Potato Corp.",
|
||||||
|
"countryCode": "US",
|
||||||
|
"provinceCode": "US-MI",
|
||||||
|
"provinceName": null,
|
||||||
|
"street": "Top secret",
|
||||||
|
"city": "Nebraska",
|
||||||
|
"postcode": "12343"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"@context": "\/api\/v2\/contexts\/Address",
|
||||||
|
"@id": "\/api\/v2\/shop\/addresses\/@integer@",
|
||||||
|
"@type": "Address",
|
||||||
|
"id": "@integer@",
|
||||||
|
"firstName": "TEST",
|
||||||
|
"lastName": "TEST",
|
||||||
|
"phoneNumber": "666111333",
|
||||||
|
"company": "Potato Corp.",
|
||||||
|
"countryCode": "DE",
|
||||||
|
"provinceCode": null,
|
||||||
|
"provinceName": "Munich",
|
||||||
|
"street": "Top secret",
|
||||||
|
"city": "Nebraska",
|
||||||
|
"postcode": "12343"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"@context": "\/api\/v2\/contexts\/Address",
|
||||||
|
"@id": "\/api\/v2\/shop\/addresses\/@integer@",
|
||||||
|
"@type": "Address",
|
||||||
|
"id": "@integer@",
|
||||||
|
"firstName": "TEST",
|
||||||
|
"lastName": "TEST",
|
||||||
|
"phoneNumber": "666111333",
|
||||||
|
"company": "Potato Corp.",
|
||||||
|
"countryCode": "DE",
|
||||||
|
"provinceCode": null,
|
||||||
|
"provinceName": null,
|
||||||
|
"street": "Top secret",
|
||||||
|
"city": "Nebraska",
|
||||||
|
"postcode": "12343"
|
||||||
|
}
|
||||||
|
|
@ -8,8 +8,8 @@
|
||||||
"phoneNumber": "123456789",
|
"phoneNumber": "123456789",
|
||||||
"company": "Stark Industries",
|
"company": "Stark Industries",
|
||||||
"countryCode": "US",
|
"countryCode": "US",
|
||||||
"provinceCode": "999",
|
"provinceCode": "US-WY",
|
||||||
"provinceName": "east",
|
"provinceName": null,
|
||||||
"street": "10880 Malibu Point",
|
"street": "10880 Malibu Point",
|
||||||
"city": "Malibu",
|
"city": "Malibu",
|
||||||
"postcode": "90265"
|
"postcode": "90265"
|
||||||
|
|
@ -1,66 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of the Sylius package.
|
|
||||||
*
|
|
||||||
* (c) Sylius Sp. z o.o.
|
|
||||||
*
|
|
||||||
* For the full copyright and license information, please view the LICENSE
|
|
||||||
* file that was distributed with this source code.
|
|
||||||
*/
|
|
||||||
|
|
||||||
declare(strict_types=1);
|
|
||||||
|
|
||||||
namespace Sylius\Tests\Api\Shop;
|
|
||||||
|
|
||||||
use Sylius\Component\Core\Model\AddressInterface;
|
|
||||||
use Sylius\Component\Core\Model\CustomerInterface;
|
|
||||||
use Sylius\Tests\Api\JsonApiTestCase;
|
|
||||||
use Sylius\Tests\Api\Utils\ShopUserLoginTrait;
|
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
|
||||||
|
|
||||||
final class AddressesGetTest extends JsonApiTestCase
|
|
||||||
{
|
|
||||||
use ShopUserLoginTrait;
|
|
||||||
|
|
||||||
/** @test */
|
|
||||||
public function it_denies_access_to_get_address_list_for_not_authenticated_user(): void
|
|
||||||
{
|
|
||||||
$this->loadFixturesFromFiles(['authentication/customer.yaml']);
|
|
||||||
|
|
||||||
$this->client->request(method: 'GET', uri: '/api/v2/shop/addresses', server: self::CONTENT_TYPE_HEADER);
|
|
||||||
|
|
||||||
$response = $this->client->getResponse();
|
|
||||||
$this->assertSame(Response::HTTP_UNAUTHORIZED, $response->getStatusCode());
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @test */
|
|
||||||
public function it_returns_address_list_of_an_authorized_user(): void
|
|
||||||
{
|
|
||||||
$fixtures = $this->loadFixturesFromFiles(['address_with_customer.yaml']);
|
|
||||||
/** @var CustomerInterface $customer */
|
|
||||||
$customer = $fixtures['customer_tony'];
|
|
||||||
|
|
||||||
$header = array_merge($this->logInShopUser($customer->getEmailCanonical()), self::CONTENT_TYPE_HEADER);
|
|
||||||
|
|
||||||
$this->client->request(method: 'GET', uri: '/api/v2/shop/addresses', server: $header);
|
|
||||||
|
|
||||||
$this->assertResponse($this->client->getResponse(), 'shop/address/get_addresses_response');
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @test */
|
|
||||||
public function it_returns_an_address_of_the_authorized_user(): void
|
|
||||||
{
|
|
||||||
$fixtures = $this->loadFixturesFromFiles(['address_with_customer.yaml']);
|
|
||||||
/** @var CustomerInterface $customer */
|
|
||||||
$customer = $fixtures['customer_tony'];
|
|
||||||
/** @var AddressInterface $address */
|
|
||||||
$address = $fixtures['address'];
|
|
||||||
|
|
||||||
$header = array_merge($this->logInShopUser($customer->getEmailCanonical()), self::CONTENT_TYPE_HEADER);
|
|
||||||
|
|
||||||
$this->client->request(method: 'GET', uri: '/api/v2/shop/addresses/' . $address->getId(), server: $header);
|
|
||||||
|
|
||||||
$this->assertResponse($this->client->getResponse(), 'shop/address/get_an_address_response');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -21,12 +21,61 @@ use Sylius\Tests\Api\JsonApiTestCase;
|
||||||
use Sylius\Tests\Api\Utils\ShopUserLoginTrait;
|
use Sylius\Tests\Api\Utils\ShopUserLoginTrait;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
|
||||||
final class AddressesPostTest extends JsonApiTestCase
|
final class AddressesTest extends JsonApiTestCase
|
||||||
{
|
{
|
||||||
use ShopUserLoginTrait;
|
use ShopUserLoginTrait;
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
public function it_denies_access_to_a_create_an_address_for_not_authenticated_user(): void
|
public function it_denies_access_to_get_addresses_for_not_authenticated_user(): void
|
||||||
|
{
|
||||||
|
$this->loadFixturesFromFiles(['authentication/customer.yaml']);
|
||||||
|
|
||||||
|
$this->client->request(method: 'GET', uri: '/api/v2/shop/addresses', server: self::CONTENT_TYPE_HEADER);
|
||||||
|
|
||||||
|
$response = $this->client->getResponse();
|
||||||
|
$this->assertSame(Response::HTTP_UNAUTHORIZED, $response->getStatusCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @test */
|
||||||
|
public function it_gets_addresses(): void
|
||||||
|
{
|
||||||
|
$fixtures = $this->loadFixturesFromFiles(['address_with_customer.yaml']);
|
||||||
|
/** @var CustomerInterface $customer */
|
||||||
|
$customer = $fixtures['customer_tony'];
|
||||||
|
|
||||||
|
$header = array_merge($this->logInShopUser($customer->getEmailCanonical()), self::CONTENT_TYPE_HEADER);
|
||||||
|
|
||||||
|
$this->client->request(method: 'GET', uri: '/api/v2/shop/addresses', server: $header);
|
||||||
|
|
||||||
|
$this->assertResponse(
|
||||||
|
$this->client->getResponse(),
|
||||||
|
'shop/address/get_addresses_response',
|
||||||
|
Response::HTTP_OK,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @test */
|
||||||
|
public function it_gets_an_address(): void
|
||||||
|
{
|
||||||
|
$fixtures = $this->loadFixturesFromFiles(['address_with_customer.yaml']);
|
||||||
|
/** @var CustomerInterface $customer */
|
||||||
|
$customer = $fixtures['customer_tony'];
|
||||||
|
/** @var AddressInterface $address */
|
||||||
|
$address = $fixtures['address'];
|
||||||
|
|
||||||
|
$header = array_merge($this->logInShopUser($customer->getEmailCanonical()), self::CONTENT_TYPE_HEADER);
|
||||||
|
|
||||||
|
$this->client->request(method: 'GET', uri: '/api/v2/shop/addresses/' . $address->getId(), server: $header);
|
||||||
|
|
||||||
|
$this->assertResponse(
|
||||||
|
$this->client->getResponse(),
|
||||||
|
'shop/address/get_address_response',
|
||||||
|
Response::HTTP_OK,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @test */
|
||||||
|
public function it_denies_access_to_create_an_address_for_not_authenticated_user(): void
|
||||||
{
|
{
|
||||||
$fixtures = $this->loadFixturesFromFiles(['authentication/customer.yaml', 'country.yaml']);
|
$fixtures = $this->loadFixturesFromFiles(['authentication/customer.yaml', 'country.yaml']);
|
||||||
/** @var CountryInterface $country */
|
/** @var CountryInterface $country */
|
||||||
|
|
@ -46,7 +95,7 @@ final class AddressesPostTest extends JsonApiTestCase
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
public function it_creates_new_address_for_logged_customer_with_country_with_provinces(): void
|
public function it_creates_a_new_address_with_country_and_province_code(): void
|
||||||
{
|
{
|
||||||
$fixtures = $this->loadFixturesFromFiles(['authentication/customer.yaml', 'country.yaml']);
|
$fixtures = $this->loadFixturesFromFiles(['authentication/customer.yaml', 'country.yaml']);
|
||||||
/** @var CustomerInterface $customer */
|
/** @var CustomerInterface $customer */
|
||||||
|
|
@ -67,17 +116,15 @@ final class AddressesPostTest extends JsonApiTestCase
|
||||||
content: json_encode($bodyRequest, \JSON_THROW_ON_ERROR),
|
content: json_encode($bodyRequest, \JSON_THROW_ON_ERROR),
|
||||||
);
|
);
|
||||||
|
|
||||||
$response = $this->client->getResponse();
|
|
||||||
|
|
||||||
$this->assertResponse(
|
$this->assertResponse(
|
||||||
$response,
|
$this->client->getResponse(),
|
||||||
'shop/address/create_address_with_province_code_response',
|
'shop/address/post_address_with_province_code_response',
|
||||||
Response::HTTP_CREATED,
|
Response::HTTP_CREATED,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
public function it_creates_new_address_for_logged_customer_without_province(): void
|
public function it_creates_a_new_address_with_country_and_province_name(): void
|
||||||
{
|
{
|
||||||
$fixtures = $this->loadFixturesFromFiles(['authentication/customer.yaml', 'country.yaml']);
|
$fixtures = $this->loadFixturesFromFiles(['authentication/customer.yaml', 'country.yaml']);
|
||||||
/** @var CustomerInterface $customer */
|
/** @var CustomerInterface $customer */
|
||||||
|
|
@ -96,17 +143,15 @@ final class AddressesPostTest extends JsonApiTestCase
|
||||||
content: json_encode($bodyRequest, \JSON_THROW_ON_ERROR),
|
content: json_encode($bodyRequest, \JSON_THROW_ON_ERROR),
|
||||||
);
|
);
|
||||||
|
|
||||||
$response = $this->client->getResponse();
|
|
||||||
|
|
||||||
$this->assertResponse(
|
$this->assertResponse(
|
||||||
$response,
|
$this->client->getResponse(),
|
||||||
'shop/address/create_address_with_province_name_response',
|
'shop/address/post_address_with_province_name_response',
|
||||||
Response::HTTP_CREATED,
|
Response::HTTP_CREATED,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
public function it_creates_new_address_for_logged_customer_with_country_with_custom_provinces(): void
|
public function it_creates_a_new_address_with_country_without_province_data(): void
|
||||||
{
|
{
|
||||||
$fixtures = $this->loadFixturesFromFiles(['authentication/customer.yaml', 'country.yaml']);
|
$fixtures = $this->loadFixturesFromFiles(['authentication/customer.yaml', 'country.yaml']);
|
||||||
/** @var CustomerInterface $customer */
|
/** @var CustomerInterface $customer */
|
||||||
|
|
@ -125,17 +170,15 @@ final class AddressesPostTest extends JsonApiTestCase
|
||||||
content: json_encode($bodyRequest, \JSON_THROW_ON_ERROR),
|
content: json_encode($bodyRequest, \JSON_THROW_ON_ERROR),
|
||||||
);
|
);
|
||||||
|
|
||||||
$response = $this->client->getResponse();
|
|
||||||
|
|
||||||
$this->assertResponse(
|
$this->assertResponse(
|
||||||
$response,
|
$this->client->getResponse(),
|
||||||
'shop/address/create_address_without_province_response',
|
'shop/address/post_address_without_province_response',
|
||||||
Response::HTTP_CREATED,
|
Response::HTTP_CREATED,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @test */
|
/** @test */
|
||||||
public function it_updates_an_address_of_the_authorized_user(): void
|
public function it_updates_an_address(): void
|
||||||
{
|
{
|
||||||
$fixtures = $this->loadFixturesFromFiles(['address_with_customer.yaml']);
|
$fixtures = $this->loadFixturesFromFiles(['address_with_customer.yaml']);
|
||||||
/** @var CustomerInterface $customer */
|
/** @var CustomerInterface $customer */
|
||||||
|
|
@ -154,6 +197,7 @@ final class AddressesPostTest extends JsonApiTestCase
|
||||||
'lastName' => 'Stark',
|
'lastName' => 'Stark',
|
||||||
'company' => 'Stark Industries',
|
'company' => 'Stark Industries',
|
||||||
'countryCode' => 'US',
|
'countryCode' => 'US',
|
||||||
|
'provinceCode' => 'US-WY',
|
||||||
'street' => '10880 Malibu Point',
|
'street' => '10880 Malibu Point',
|
||||||
'city' => 'Malibu',
|
'city' => 'Malibu',
|
||||||
'postcode' => '90265',
|
'postcode' => '90265',
|
||||||
|
|
@ -161,7 +205,11 @@ final class AddressesPostTest extends JsonApiTestCase
|
||||||
]),
|
]),
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->assertResponse($this->client->getResponse(), 'shop/address/update_an_address_response');
|
$this->assertResponse(
|
||||||
|
$this->client->getResponse(),
|
||||||
|
'shop/address/put_address_response',
|
||||||
|
Response::HTTP_OK,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function createBodyRequest(
|
private function createBodyRequest(
|
||||||
Loading…
Add table
Reference in a new issue