1717use Zend \InputFilter \Input ;
1818use Zend \InputFilter \InputInterface ;
1919use Zend \Validator ;
20+ use Zend \Validator \NotEmpty ;
2021use Zend \Validator \ValidatorChain ;
2122
2223/**
@@ -34,6 +35,21 @@ public function setUp()
3435 $ this ->input = new Input ('foo ' );
3536 }
3637
38+ public function assertRequiredValidationErrorMessage ($ input , $ message = '' )
39+ {
40+ $ message = $ message ?: 'Expected failure message for required input ' ;
41+ $ message .= '; ' ;
42+
43+ $ messages = $ input ->getMessages ();
44+ $ this ->assertInternalType ('array ' , $ messages , $ message . ' non-array messages array ' );
45+
46+ $ notEmpty = new NotEmpty ();
47+ $ messageTemplates = $ notEmpty ->getOption ('messageTemplates ' );
48+ $ this ->assertSame ([
49+ NotEmpty::IS_EMPTY => $ messageTemplates [NotEmpty::IS_EMPTY ],
50+ ], $ messages , $ message . ' missing NotEmpty::IS_EMPTY key and/or contains additional messages ' );
51+ }
52+
3753 public function testConstructorRequiresAName ()
3854 {
3955 $ this ->assertEquals ('foo ' , $ this ->input ->getName ());
@@ -172,7 +188,24 @@ public function testRequiredWithoutFallbackAndValueNotSetThenFail()
172188 $ input ->isValid (),
173189 'isValid() should be return always false when no fallback value, is required, and not data is set. '
174190 );
175- $ this ->assertEquals (['Value is required ' ], $ input ->getMessages (), 'getMessages() value not match ' );
191+ $ this ->assertRequiredValidationErrorMessage ($ input );
192+ }
193+
194+ /**
195+ * @group 28
196+ * @group 60
197+ */
198+ public function testRequiredWithoutFallbackAndValueNotSetProvidesNotEmptyValidatorIsEmptyErrorMessage ()
199+ {
200+ $ input = $ this ->input ;
201+ $ input ->setRequired (true );
202+
203+ $ this ->assertFalse (
204+ $ input ->isValid (),
205+ 'isValid() should always return false when no fallback value is present, '
206+ . 'the input is required, and no data is set. '
207+ );
208+ $ this ->assertRequiredValidationErrorMessage ($ input );
176209 }
177210
178211 public function testNotRequiredWithoutFallbackAndValueNotSetThenIsValid ()
0 commit comments