@@ -59,7 +59,13 @@ public function testAddTaggedTypes()
59
59
), $ extDefinition ->getArgument (1 ));
60
60
}
61
61
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 )
63
69
{
64
70
$ container = new ContainerBuilder ();
65
71
$ container ->addCompilerPass (new FormPass ());
@@ -72,26 +78,49 @@ public function testAddTaggedTypeExtensions()
72
78
));
73
79
74
80
$ 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
+ }
81
85
82
86
$ container ->compile ();
83
87
84
88
$ extDefinition = $ container ->getDefinition ('form.extension ' );
89
+ $ this ->assertSame ($ expectedRegisteredExtensions , $ extDefinition ->getArgument (2 ));
90
+ }
85
91
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
+ ),
90
108
),
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
+ ),
93
122
),
94
- ), $ extDefinition -> getArgument ( 2 )) ;
123
+ );
95
124
}
96
125
97
126
/**
0 commit comments