Filter validator test.

This commit is contained in:
sc0Vu 2018-02-22 16:00:03 +08:00
parent 0e49a2b31e
commit 073a5feaf8
2 changed files with 88 additions and 2 deletions

View File

@ -44,8 +44,22 @@ class FilterValidator
) {
return false;
}
if (isset($value['address']) && AddressValidator::validate($value['address']) === false) {
return false;
if (isset($value['address'])) {
if (is_array($value['address'])) {
$isError = false;
foreach ($value['address'] as $address) {
if (AddressValidator::validate($address) === false) {
$isError = true;
break;
}
}
if ($isError === true) {
return false;
}
} elseif (AddressValidator::validate($value['address']) === false) {
return false;
}
}
if (isset($value['topics']) && is_array($value['topics'])) {
foreach ($value['topics'] as $topic) {

View File

@ -0,0 +1,72 @@
<?php
namespace Test\Unit;
use Test\TestCase;
use Web3\Validators\FilterValidator;
class FilterValidatorTest extends TestCase
{
/**
* validator
*
* @var \Web3\Validators\FilterValidator
*/
protected $validator;
/**
* setUp
*
* @return void
*/
public function setUp()
{
parent::setUp();
$this->validator = new FilterValidator;
}
/**
* testValidate
*
* @return void
*/
public function testValidate()
{
$validator = $this->validator;
$this->assertEquals(false, $validator->validate('hello web3.php'));
$this->assertEquals(false, $validator->validate([
'fromBlock' => 'hello',
]));
$this->assertEquals(false, $validator->validate([
'toBlock' => 'hello',
]));
$this->assertEquals(false, $validator->validate([
'address' => '0xzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz',
]));
$this->assertEquals(false, $validator->validate([
'topics' => [
'0xzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz',
]
]));
$this->assertEquals(true, $validator->validate([]));
$this->assertEquals(true, $validator->validate([
'fromBlock' => 'earliest',
'toBlock' => 'latest',
'address' => '0xd46e8dd67c5d32be8058bb8eb970870f07244567',
'topics' => [
'0xd46e8dd67c5d32be8058bb8eb970870f07244567', '0xd46e8dd67c5d32be8058bb8eb970870f07244567'
]
]));
$this->assertEquals(true, $validator->validate([
'fromBlock' => 'earliest',
'toBlock' => 'latest',
'address' => [
'0xd46e8dd67c5d32be8058bb8eb970870f07244567', '0xd46e8dd67c5d32be8058bb8eb970870f07244567'
],
'topics' => [
'0xd46e8dd67c5d32be8058bb8eb970870f07244567', '0xd46e8dd67c5d32be8058bb8eb970870f07244567'
]
]));
}
}