MultipleErrors->reason always returns [0] and should return first item from associative array (#305)

* Patch MultipleErrors->reason method by getting always the first item - Added Tests and a custom Exception

* Return EmptyReason instead of throwing exception when MultipleErrors has no reasons (validations accomplished)

Co-authored-by: Samuel Vicent <samuel.vicent@takeachef.com>
This commit is contained in:
Samuel Vicent
2021-10-11 11:18:27 +02:00
committed by GitHub
parent c81f18a3ef
commit ee0db30118
3 changed files with 49 additions and 3 deletions
+4 -2
View File
@@ -2,7 +2,7 @@
namespace Egulias\EmailValidator\Result;
use Egulias\EmailValidator\Result\InvalidEmail;
use Egulias\EmailValidator\Result\Reason\EmptyReason;
use Egulias\EmailValidator\Result\Reason\Reason;
/**
@@ -34,7 +34,9 @@ class MultipleErrors extends InvalidEmail
public function reason() : Reason
{
return $this->reasons[0];
return 0 !== count($this->reasons)
? current($this->reasons)
: new EmptyReason();
}
public function description() : string
+16
View File
@@ -0,0 +1,16 @@
<?php
namespace Egulias\EmailValidator\Result\Reason;
class EmptyReason implements Reason
{
public function code() : int
{
return 0;
}
public function description() : string
{
return 'Empty reason';
}
}