@@ -59,7 +59,13 @@ public function testAddTaggedTypes()
5959 ), $ extDefinition ->getArgument (1 ));
6060 }
6161
62- public function testAddTaggedTypeExtensions ()
62+ /**
63+ * @dataProvider addTaggedTypeExtensionsDataProvider
64+ *
65+ * @param array $extensions
66+ * @param array $expectedRegisteredExtensions
67+ */
68+ public function testAddTaggedTypeExtensions (array $ extensions , array $ expectedRegisteredExtensions )
6369 {
6470 $ container = new ContainerBuilder ();
6571 $ container ->addCompilerPass (new FormPass ());
@@ -72,26 +78,49 @@ public function testAddTaggedTypeExtensions()
7278 ));
7379
7480 $ container ->setDefinition ('form.extension ' , $ extDefinition );
75- $ container ->register ('my.type_extension1 ' , 'stdClass ' )
76- ->addTag ('form.type_extension ' , array ('extended_type ' => 'type1 ' ));
77- $ container ->register ('my.type_extension2 ' , 'stdClass ' )
78- ->addTag ('form.type_extension ' , array ('extended_type ' => 'type1 ' ));
79- $ container ->register ('my.type_extension3 ' , 'stdClass ' )
80- ->addTag ('form.type_extension ' , array ('extended_type ' => 'type2 ' ));
81+
82+ foreach ($ extensions as $ serviceId => $ tag ) {
83+ $ container ->register ($ serviceId , 'stdClass ' )->addTag ('form.type_extension ' , $ tag );
84+ }
8185
8286 $ container ->compile ();
8387
8488 $ extDefinition = $ container ->getDefinition ('form.extension ' );
89+ $ this ->assertSame ($ expectedRegisteredExtensions , $ extDefinition ->getArgument (2 ));
90+ }
8591
86- $ this ->assertSame (array (
87- 'type1 ' => array (
88- 'my.type_extension1 ' ,
89- 'my.type_extension2 ' ,
92+ /**
93+ * @return array
94+ */
95+ public function addTaggedTypeExtensionsDataProvider ()
96+ {
97+ return array (
98+ array (
99+ array (
100+ 'my.type_extension1 ' => array ('extended_type ' => 'type1 ' ),
101+ 'my.type_extension2 ' => array ('extended_type ' => 'type1 ' ),
102+ 'my.type_extension3 ' => array ('extended_type ' => 'type2 ' ),
103+ ),
104+ array (
105+ 'type1 ' => array ('my.type_extension1 ' , 'my.type_extension2 ' ),
106+ 'type2 ' => array ('my.type_extension3 ' ),
107+ ),
90108 ),
91- 'type2 ' => array (
92- 'my.type_extension3 ' ,
109+ array (
110+ array (
111+ 'my.type_extension1 ' => array ('extended_type ' => 'type1 ' , 'priority ' => 1 ),
112+ 'my.type_extension2 ' => array ('extended_type ' => 'type1 ' , 'priority ' => 2 ),
113+ 'my.type_extension3 ' => array ('extended_type ' => 'type1 ' , 'priority ' => -1 ),
114+ 'my.type_extension4 ' => array ('extended_type ' => 'type2 ' , 'priority ' => 2 ),
115+ 'my.type_extension5 ' => array ('extended_type ' => 'type2 ' , 'priority ' => 1 ),
116+ 'my.type_extension6 ' => array ('extended_type ' => 'type2 ' , 'priority ' => 1 ),
117+ ),
118+ array (
119+ 'type1 ' => array ('my.type_extension2 ' , 'my.type_extension1 ' , 'my.type_extension3 ' ),
120+ 'type2 ' => array ('my.type_extension4 ' , 'my.type_extension5 ' , 'my.type_extension6 ' ),
121+ ),
93122 ),
94- ), $ extDefinition -> getArgument ( 2 )) ;
123+ );
95124 }
96125
97126 /**
0 commit comments