Skip to content

Commit

Permalink
Add deprecation error for orderShipment "date" and "note" parameters
Browse files Browse the repository at this point in the history
  • Loading branch information
tomas-novotny committed Mar 15, 2020
1 parent 3e41a8f commit ae72daa
Show file tree
Hide file tree
Showing 5 changed files with 154 additions and 1 deletion.
2 changes: 1 addition & 1 deletion phpunit.xml.dist
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,4 @@
<log type="coverage-text" target="build/coverage.txt"/>
<log type="coverage-clover" target="build/logs/clover.xml"/>
</logging>
</phpunit>
</phpunit>
5 changes: 5 additions & 0 deletions src/Services/Balikobot.php
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,11 @@ public function dropPackage(OrderedPackage $package): void
public function orderShipment(OrderedPackageCollection $packages, DateTime $date = null): OrderedShipment
{
if ($date !== null) {
trigger_error(
'Parameters "$date" will be removed in v2.0 (removed in Balikobot API v1.879)',
E_USER_DEPRECATED
);

$date->setTime(0, 0, 0);
}

Expand Down
7 changes: 7 additions & 0 deletions src/Services/Client.php
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,13 @@ public function getPackageInfo(string $shipper, int $packageId): array
*/
public function orderShipment(string $shipper, array $packageIds, DateTime $date = null, string $note = null): array
{
if ($date !== null || $note !== null) {
trigger_error(
'Parameters "$date" and "$note" will be removed in v2.0 (removed in Balikobot API v1.879)',
E_USER_DEPRECATED
);
}

$data = [
'package_ids' => $packageIds,
'date' => $date ? $date->format('Y-m-d') : null,
Expand Down
97 changes: 97 additions & 0 deletions tests/Unit/Balikobot/OrderShipmentTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use Inspirum\Balikobot\Model\Aggregates\OrderedPackageCollection;
use Inspirum\Balikobot\Model\Values\OrderedPackage;
use Inspirum\Balikobot\Services\Balikobot;
use PHPUnit\Framework\Error\Deprecated;

class OrderShipmentTest extends AbstractBalikobotTestCase
{
Expand All @@ -27,6 +28,67 @@ public function testMakeRequest()
$packages->add(new OrderedPackage(1, 'ppl', '0001', '1234'));
$packages->add(new OrderedPackage(2, 'ppl', '0001', '5678'));

$service->orderShipment($packages);

$requester->shouldHaveReceived(
'request',
[
'https://api.balikobot.cz/ppl/order',
[
'package_ids' => [1, 2],
'date' => null,
'note' => null,
],
]
);

$this->assertTrue(true);
}

public function testMakeRequestWithDeprecatedParameter()
{
$this->expectException(Deprecated::class);

$requester = $this->newRequesterWithMockedRequestMethod(200, [
'status' => 200,
'order_id' => 29,
'file_url' => 'http://csv.balikobot.cz/cp/eNoz0jUFXDABKFwwlQ..',
'handover_url' => 'http://pdf.balikobot.cz/cp/eNoz0jW0BfwwAe5cMMo.',
'labels_url' => 'http://pdf.balikobot.cz/cp/eNoz0jW0XDBcMAHtXDDJ',
'package_ids' => [1, 2],
]);

$service = new Balikobot($requester);

$packages = new OrderedPackageCollection();

$packages->add(new OrderedPackage(1, 'ppl', '0001', '1234'));
$packages->add(new OrderedPackage(2, 'ppl', '0001', '5678'));

$service->orderShipment($packages, new DateTime('2018-10-10 10:00:00'));
}

public function testMakeRequestWithDeprecatedParameterWorks()
{
$depracatedEnabled = Deprecated::$enabled;
Deprecated::$enabled = false;

$requester = $this->newRequesterWithMockedRequestMethod(200, [
'status' => 200,
'order_id' => 29,
'file_url' => 'http://csv.balikobot.cz/cp/eNoz0jUFXDABKFwwlQ..',
'handover_url' => 'http://pdf.balikobot.cz/cp/eNoz0jW0BfwwAe5cMMo.',
'labels_url' => 'http://pdf.balikobot.cz/cp/eNoz0jW0XDBcMAHtXDDJ',
'package_ids' => [1, 2],
]);

$service = new Balikobot($requester);

$packages = new OrderedPackageCollection();

$packages->add(new OrderedPackage(1, 'ppl', '0001', '1234'));
$packages->add(new OrderedPackage(2, 'ppl', '0001', '5678'));

$service->orderShipment($packages, new DateTime('2018-10-10 10:00:00'));

$requester->shouldHaveReceived(
Expand All @@ -42,6 +104,8 @@ public function testMakeRequest()
);

$this->assertTrue(true);

Deprecated::$enabled = $depracatedEnabled;
}

public function testResponseData()
Expand All @@ -62,6 +126,37 @@ public function testResponseData()
$packages->add(new OrderedPackage(1, 'ppl', '0001', '1234'));
$packages->add(new OrderedPackage(2, 'ppl', '0001', '5678'));

$orderedShipment = $service->orderShipment($packages);

$this->assertEquals('ppl', $orderedShipment->getShipper());
$this->assertEquals([1, 2], $orderedShipment->getPackageIds());
$this->assertEquals('http://csv.balikobot.cz/cp/eNoz0jUFXDABKFwwlQ..', $orderedShipment->getFileUrl());
$this->assertEquals('http://pdf.balikobot.cz/cp/eNoz0jW0XDBcMAHtXDDJ', $orderedShipment->getLabelsUrl());
$this->assertEquals('http://pdf.balikobot.cz/cp/eNoz0jW0BfwwAe5cMMo.', $orderedShipment->getHandoverUrl());
$this->assertEquals(29, $orderedShipment->getOrderId());
}

public function testResponseDataWithDepractedParameter()
{
$depracatedEnabled = Deprecated::$enabled;
Deprecated::$enabled = false;

$requester = $this->newRequesterWithMockedRequestMethod(200, [
'status' => 200,
'order_id' => 29,
'file_url' => 'http://csv.balikobot.cz/cp/eNoz0jUFXDABKFwwlQ..',
'handover_url' => 'http://pdf.balikobot.cz/cp/eNoz0jW0BfwwAe5cMMo.',
'labels_url' => 'http://pdf.balikobot.cz/cp/eNoz0jW0XDBcMAHtXDDJ',
'package_ids' => [1, 2],
]);

$service = new Balikobot($requester);

$packages = new OrderedPackageCollection();

$packages->add(new OrderedPackage(1, 'ppl', '0001', '1234'));
$packages->add(new OrderedPackage(2, 'ppl', '0001', '5678'));

$orderedShipment = $service->orderShipment($packages, new DateTime('2018-10-10 10:00:00'));

$this->assertEquals('ppl', $orderedShipment->getShipper());
Expand All @@ -71,5 +166,7 @@ public function testResponseData()
$this->assertEquals('http://pdf.balikobot.cz/cp/eNoz0jW0XDBcMAHtXDDJ', $orderedShipment->getLabelsUrl());
$this->assertEquals('http://pdf.balikobot.cz/cp/eNoz0jW0BfwwAe5cMMo.', $orderedShipment->getHandoverUrl());
$this->assertEquals(29, $orderedShipment->getOrderId());

Deprecated::$enabled = $depracatedEnabled;
}
}
44 changes: 44 additions & 0 deletions tests/Unit/Client/Requests/OrderRequestTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use Inspirum\Balikobot\Exceptions\BadRequestException;
use Inspirum\Balikobot\Services\Client;
use Inspirum\Balikobot\Tests\Unit\Client\AbstractClientTestCase;
use PHPUnit\Framework\Error\Deprecated;

class OrderRequestTest extends AbstractClientTestCase
{
Expand Down Expand Up @@ -54,6 +55,47 @@ public function testMakeRequest()

$client = new Client($requester);

$client->orderShipment('cp', [1, 4]);

$requester->shouldHaveReceived(
'request',
[
'https://api.balikobot.cz/cp/order',
[
'package_ids' => [1, 4],
'date' => null,
'note' => null,
],
]
);

$this->assertTrue(true);
}

public function testMakeRequestWithDeprecatedParameters()
{
$this->expectException(Deprecated::class);

$requester = $this->newRequesterWithMockedRequestMethod(200, [
'status' => 200,
]);

$client = new Client($requester);

$client->orderShipment('cp', [1, 4], new DateTime('2018-10-10 14:00:00'), 'TEST');
}

public function testMakeRequestWithDeprecatedParametersWorks()
{
$depracatedEnabled = Deprecated::$enabled;
Deprecated::$enabled = false;

$requester = $this->newRequesterWithMockedRequestMethod(200, [
'status' => 200,
]);

$client = new Client($requester);

$client->orderShipment('cp', [1, 4], new DateTime('2018-10-10 14:00:00'), 'TEST');

$requester->shouldHaveReceived(
Expand All @@ -69,6 +111,8 @@ public function testMakeRequest()
);

$this->assertTrue(true);

Deprecated::$enabled = $depracatedEnabled;
}

public function testOnlyOrderDataAreReturned()
Expand Down

0 comments on commit ae72daa

Please sign in to comment.