1515use Zend \Filter \FilterChain ;
1616use Zend \InputFilter \Input ;
1717use Zend \InputFilter \InputInterface ;
18+ use Zend \Validator \AbstractValidator ;
1819use Zend \Validator \NotEmpty as NotEmptyValidator ;
20+ use Zend \Validator \Translator \TranslatorInterface ;
1921use Zend \Validator \ValidatorChain ;
2022use Zend \Validator \ValidatorInterface ;
2123
@@ -34,6 +36,11 @@ public function setUp()
3436 $ this ->input = new Input ('foo ' );
3537 }
3638
39+ protected function tearDown ()
40+ {
41+ AbstractValidator::setDefaultTranslator (null );
42+ }
43+
3744 public function assertRequiredValidationErrorMessage (Input $ input , $ message = '' )
3845 {
3946 $ message = $ message ?: 'Expected failure message for required input ' ;
@@ -569,6 +576,26 @@ public function testInputMergeWithTargetValue()
569576 $ this ->assertTrue ($ target ->hasValue (), 'hasValue() value not match ' );
570577 }
571578
579+ public function testNotEmptyMessageIsTranslated ()
580+ {
581+ /** @var TranslatorInterface|MockObject $translator */
582+ $ translator = $ this ->getMock (TranslatorInterface::class);
583+ AbstractValidator::setDefaultTranslator ($ translator );
584+ $ notEmpty = new NotEmptyValidator ();
585+
586+ $ translatedMessage = 'some translation ' ;
587+ $ translator ->expects ($ this ->atLeastOnce ())
588+ ->method ('translate ' )
589+ ->with ($ notEmpty ->getMessageTemplates ()[NotEmptyValidator::IS_EMPTY ])
590+ ->willReturn ($ translatedMessage )
591+ ;
592+
593+ $ this ->assertFalse ($ this ->input ->isValid ());
594+ $ messages = $ this ->input ->getMessages ();
595+ $ this ->assertArrayHasKey ('isEmpty ' , $ messages );
596+ $ this ->assertSame ($ translatedMessage , $ messages ['isEmpty ' ]);
597+ }
598+
572599 public function fallbackValueVsIsValidProvider ()
573600 {
574601 $ required = true ;
0 commit comments