@@ -491,31 +491,30 @@ public function testSetDeprecatedFailsIfInvalidDeprecationMessageType()
491
491
public function testLazyDeprecationFailsIfInvalidDeprecationMessageType ()
492
492
{
493
493
$ this ->resolver
494
- ->setDefault ('foo ' , true )
494
+ ->setDefined ('foo ' )
495
495
->setDeprecated ('foo ' , function (Options $ options , $ value ) {
496
496
return false ;
497
497
})
498
498
;
499
- $ this ->resolver ->resolve ();
499
+ $ this ->resolver ->resolve (array ( ' foo ' => null ) );
500
500
}
501
501
502
502
/**
503
503
* @expectedException \Symfony\Component\OptionsResolver\Exception\OptionDefinitionException
504
- * @expectedExceptionMessage The options "foo ", "bar " have a cyclic dependency.
504
+ * @expectedExceptionMessage The options "bar ", "foo " have a cyclic dependency.
505
505
*/
506
506
public function testFailsIfCyclicDependencyBetweenDeprecation ()
507
507
{
508
508
$ this ->resolver
509
- ->setDefault ('foo ' , null )
510
- ->setDefault ('bar ' , null )
509
+ ->setDefined (array ('foo ' , 'bar ' ))
511
510
->setDeprecated ('foo ' , function (Options $ options , $ value ) {
512
511
$ options ['bar ' ];
513
512
})
514
513
->setDeprecated ('bar ' , function (Options $ options , $ value ) {
515
514
$ options ['foo ' ];
516
515
})
517
516
;
518
- $ this ->resolver ->resolve ();
517
+ $ this ->resolver ->resolve (array ( ' foo ' => null , ' bar ' => null ) );
519
518
}
520
519
521
520
public function testIsDeprecated ()
@@ -590,14 +589,30 @@ function (OptionsResolver $resolver) {
590
589
),
591
590
);
592
591
593
- yield 'It deprecates a missing option with default value ' => array (
592
+ yield 'It does not deprecates a missing option with default value ' => array (
594
593
function (OptionsResolver $ resolver ) {
595
594
$ resolver
596
- ->setDefaults ( array ( 'foo ' => null , ' bar ' => null ) )
595
+ ->setDefault ( 'foo ' , null )
597
596
->setDeprecated ('foo ' )
598
597
;
599
598
},
600
- array ('bar ' => 'baz ' ),
599
+ array (),
600
+ null ,
601
+ );
602
+
603
+ yield 'It deprecates an option evaluated in another definition ' => array (
604
+ function (OptionsResolver $ resolver ) {
605
+ // defined by superclass
606
+ $ resolver
607
+ ->setDefault ('foo ' , null )
608
+ ->setDeprecated ('foo ' )
609
+ ;
610
+ // defined by subclass
611
+ $ resolver ->setDefault ('bar ' , function (Options $ options ) {
612
+ return $ options ['foo ' ];
613
+ });
614
+ },
615
+ array (),
601
616
array (
602
617
'type ' => E_USER_DEPRECATED ,
603
618
'message ' => 'The option "foo" is deprecated. ' ,
0 commit comments