34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
declare(strict_types=1);
 | 
						|
 | 
						|
namespace App\Tests\Validator;
 | 
						|
 | 
						|
use App\Service\CurrencyListerInterface;
 | 
						|
use App\Validator\Currency;
 | 
						|
use App\Validator\CurrencyValidator;
 | 
						|
 | 
						|
class CurrencyValidatorTest extends ValidatorTestCase
 | 
						|
{
 | 
						|
    public function testSuccess(): void {
 | 
						|
        $currencyValidator = $this->createCurrencyValidator();
 | 
						|
        $currencyValidator->initialize($this->createExecutionContext(false));
 | 
						|
 | 
						|
        $currencyValidator->validate('USD', new Currency(['message' => 'foo']));
 | 
						|
    }
 | 
						|
 | 
						|
    public function testFailure(): void {
 | 
						|
        $currencyValidator = $this->createCurrencyValidator();
 | 
						|
        $currencyValidator->initialize($this->createExecutionContext(true));
 | 
						|
        $currencyValidator->validate('EUR', new Currency(['message' => 'foo']));
 | 
						|
    }
 | 
						|
 | 
						|
    private function createCurrencyValidator(): CurrencyValidator {
 | 
						|
        $mock = $this->createMock(CurrencyListerInterface::class);
 | 
						|
        $mock->expects($this->once())
 | 
						|
            ->method('getCurrencies')
 | 
						|
            ->will($this->returnValue(['USD', 'CZK']));
 | 
						|
 | 
						|
        return new CurrencyValidator($mock);
 | 
						|
    }
 | 
						|
}
 |