Skip to content

Commit 34c45bc

Browse files
author
Antoine Aflalo
committed
feat(Request): Add support for NullableFields
Request can now set which fields are null and needs to be send
1 parent af1a056 commit 34c45bc

2 files changed

Lines changed: 80 additions & 0 deletions

File tree

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<?php
2+
/**
3+
* Created by PhpStorm.
4+
* User: aaflalo
5+
* Date: 18-07-12
6+
* Time: 09:51
7+
*/
8+
9+
namespace ZEROSPAM\Framework\SDK\Test\Base\Request;
10+
11+
use ZEROSPAM\Framework\SDK\Request\Api\HasNullableFields;
12+
use ZEROSPAM\Framework\SDK\Request\Api\WithNullableFields;
13+
use ZEROSPAM\Framework\SDK\Test\Base\Data\TestRequest;
14+
15+
class NullableTestRequest extends TestRequest implements WithNullableFields
16+
{
17+
use HasNullableFields;
18+
/**
19+
* @var null|string
20+
*/
21+
private $nullField;
22+
23+
/**
24+
* @param null|string $nullField
25+
*
26+
* @return $this
27+
*/
28+
public function setNullField(?string $nullField)
29+
{
30+
$this->nullableChanged();
31+
$this->nullField = $nullField;
32+
33+
return $this;
34+
}
35+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?php
2+
/**
3+
* Created by PhpStorm.
4+
* User: aaflalo
5+
* Date: 18-07-12
6+
* Time: 09:50
7+
*/
8+
9+
namespace ZEROSPAM\Framework\SDK\Test\Tests\Request;
10+
11+
use ZEROSPAM\Framework\SDK\Test\Base\Request\NullableTestRequest;
12+
use ZEROSPAM\Framework\SDK\Test\Base\TestCase;
13+
14+
class NullableRequestTest extends TestCase
15+
{
16+
17+
/**
18+
*
19+
*/
20+
public function testNullFieldInRequestSet(): void
21+
{
22+
$client = $this->preSuccess([]);
23+
24+
$request = new NullableTestRequest();
25+
$request->setNullField(null);
26+
27+
$client->getOAuthTestClient()->processRequest($request);
28+
29+
$this->validateRequest($client, ['null_field' => null]);
30+
}
31+
32+
/**
33+
*
34+
*/
35+
public function testNullFieldInRequestNotSet(): void
36+
{
37+
$client = $this->preSuccess([]);
38+
39+
$request = new NullableTestRequest();
40+
41+
$client->getOAuthTestClient()->processRequest($request);
42+
43+
$this->validateRequest($client, []);
44+
}
45+
}

0 commit comments

Comments
 (0)