@@ -73,6 +73,48 @@ public function testProcessWithAlias()
7373 $ this ->assertNull ($ fooExtendedDefinition ->getDecoratedService ());
7474 }
7575
76+ public function testProcessWithPriority ()
77+ {
78+ $ container = new ContainerBuilder ();
79+ $ fooDefinition = $ container
80+ ->register ('foo ' )
81+ ->setPublic (false )
82+ ;
83+ $ barDefinition = $ container
84+ ->register ('bar ' )
85+ ->setPublic (true )
86+ ->setDecoratedService ('foo ' )
87+ ;
88+ $ bazDefinition = $ container
89+ ->register ('baz ' )
90+ ->setPublic (true )
91+ ->setDecoratedService ('foo ' , null , 5 )
92+ ;
93+ $ quxDefinition = $ container
94+ ->register ('qux ' )
95+ ->setPublic (true )
96+ ->setDecoratedService ('foo ' , null , 3 )
97+ ;
98+
99+ $ this ->process ($ container );
100+
101+ $ this ->assertEquals ('bar ' , $ container ->getAlias ('foo ' ));
102+ $ this ->assertFalse ($ container ->getAlias ('foo ' )->isPublic ());
103+
104+ $ this ->assertSame ($ fooDefinition , $ container ->getDefinition ('baz.inner ' ));
105+ $ this ->assertFalse ($ container ->getDefinition ('baz.inner ' )->isPublic ());
106+
107+ $ this ->assertEquals ('qux ' , $ container ->getAlias ('bar.inner ' ));
108+ $ this ->assertFalse ($ container ->getAlias ('bar.inner ' )->isPublic ());
109+
110+ $ this ->assertEquals ('baz ' , $ container ->getAlias ('qux.inner ' ));
111+ $ this ->assertFalse ($ container ->getAlias ('qux.inner ' )->isPublic ());
112+
113+ $ this ->assertNull ($ barDefinition ->getDecoratedService ());
114+ $ this ->assertNull ($ bazDefinition ->getDecoratedService ());
115+ $ this ->assertNull ($ quxDefinition ->getDecoratedService ());
116+ }
117+
76118 protected function process (ContainerBuilder $ container )
77119 {
78120 $ repeatedPass = new DecoratorServicePass ();
0 commit comments