Skip to content

Commit

Permalink
Add Test
Browse files Browse the repository at this point in the history
  • Loading branch information
hobbyhacker0 committed Dec 13, 2023
1 parent be4d76d commit 800c9c7
Show file tree
Hide file tree
Showing 2 changed files with 115 additions and 21 deletions.
24 changes: 3 additions & 21 deletions src/Query/Messaging/Messages/ByConversation.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,17 @@

namespace Dvsa\Olcs\Transfer\Query\Messaging\Messages;

use Dvsa\Olcs\Transfer\Query\OrderedQueryInterface;
use Dvsa\Olcs\Transfer\FieldType\Traits\Conversation;
use Dvsa\Olcs\Transfer\Query\PagedQueryInterface;
use Dvsa\Olcs\Transfer\Query\PagedTrait;
use Dvsa\Olcs\Transfer\FieldType\Traits\Licence;
use Dvsa\Olcs\Transfer\Util\Annotation as Transfer;
use Dvsa\Olcs\Transfer\Query\AbstractQuery;
use Dvsa\Olcs\Transfer\Util\Annotation as Transfer;

/**
* @Transfer\RouteName("backend/messaging/messages/by-conversation")
*/
final class ByConversation extends AbstractQuery implements PagedQueryInterface
{
use PagedTrait;

/**
* @var int
* @Transfer\Filter({"name":"Laminas\Filter\Digits"})
* @Transfer\Validator({"name":"Laminas\Validator\Digits"})
* @Transfer\Validator({"name":"Laminas\Validator\GreaterThan", "options": {"min": 0}})
*/
protected $conversation;

/**
* Get conversation
*
* @return int
*/
public function getConversation()
{
return $this->conversation;
}
use Conversation;
}
112 changes: 112 additions & 0 deletions test/Query/Messaging/Message/ByConversationTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
<?php

namespace Dvsa\OlcsTest\Transfer\Query\Messaging\Message;

use Dvsa\Olcs\Transfer\Query\Messaging\Messages\ByConversation;
use Dvsa\OlcsTest\Transfer\DtoWithoutOptionalFieldsTest;
use Dvsa\OlcsTest\Transfer\Query\QueryTest;
use Laminas\Stdlib\ArraySerializableInterface;

class ByConversationTest extends \PHPUnit\Framework\TestCase
{
use QueryTest, DtoWithoutOptionalFieldsTest {
DtoWithoutOptionalFieldsTest::testDefaultValues insteadof QueryTest;
}

/**
* Should return a new blank DTO on which to run tests
*
* @return ArraySerializableInterface
*/
protected function createBlankDto()
{
return new ByConversation();
}

/**
* Should return an array of valid field values (i.e. those which should pass validation)
*
* for example:
*
* return [
* 'fieldName' => [
* 'good-value-1',
* 'good-value-2',
* ],
* 'anotherFieldName' => ['good-value'],
* ];
*
* @return array
*/
protected function getValidFieldValues()
{
return [
'conversation' => [
'1'
],
'page' => [
'1',
],
'limit' => [
'1',
],
];
}

/**
* Should return an array of invalid field values (i.e. those which should fail validation)
*
* for example:
*
* return [
* 'fieldName' => [
* 'bad-value-1',
* 'bad-value-2',
* ],
* 'anotherFieldName' => ['bad-value'],
* ];
*
* @return array
*/
protected function getInvalidFieldValues()
{
$invalidNumbers = [0,
'a',
'-',
'\n',];

return [
'conversation' => $invalidNumbers,
'page' => $invalidNumbers,
'limit' => $invalidNumbers,
];
}

/**
* Should return an array of expected transformations which input filters should apply to fields
*
* for example:
*
* return [
* 'fieldWhichGetsTrimmed' => [[' string ', 'string']],
* 'fieldWhichFiltersOutNonNumericDigits => [
* ['a1b2c3', '123'],
* [99, '99'],
* ],
* ];
*
* Tests expect the function 'getFoo' to exist for the function 'foo'.
*
* This DOES NOT assert that the value gets validated. To do that @see DtoTest::getValidFieldValues
*
* @return array
*/
protected function getFilterTransformations()
{
return [
'conversation' => [[99, '99']],
'page' => [[99, '99']],
'limit' => [[99, '99']],
];
}
}

0 comments on commit 800c9c7

Please sign in to comment.