66use SymfonyRollbarBundle \Provider \AbstractPersonProvider ;
77use SymfonyRollbarBundle \Provider \RollbarHandler ;
88use SymfonyRollbarBundle \Tests \Fixtures \AwesomePerson ;
9+ use Rollbar \Rollbar as RollbarNotifier ;
10+ use Rollbar \RollbarLogger ;
911
1012/**
1113 * Class PersonProviderTest
@@ -36,6 +38,7 @@ public function testPersonProvider($env, $expected)
3638 $ this ->assertNotEmpty ($ config ['person_fn ' ]);
3739
3840 $ call = $ config ['person_fn ' ];
41+ $ this ->assertTrue (is_callable ($ call ));
3942 $ this ->assertCount (2 , $ call , "The 'person_fn' should contains 2 elements " );
4043
4144 /** @var AbstractPersonProvider $service */
@@ -84,6 +87,7 @@ public function testPersonProviderFunction()
8487 $ this ->assertNotEmpty ($ config ['person_fn ' ]);
8588
8689 $ method = $ config ['person_fn ' ];
90+ $ this ->assertTrue (is_callable ($ method ));
8791 $ this ->assertEquals ('get_awesome_person ' , $ method );
8892
8993 $ person = call_user_func ($ method );
@@ -92,4 +96,119 @@ public function testPersonProviderFunction()
9296 $ this ->assertEquals ('global_username ' , $ person ['username ' ]);
9397 $ this ->assertEquals ('global_email ' , $ person ['email ' ]);
9498 }
99+
100+ /**
101+ * @dataProvider generatePersonProviderCalls
102+ *
103+ * @param $env
104+ * @param $expected
105+ *
106+ * @throws \ReflectionException
107+ */
108+ public function testPersonProviderWasCalled ($ env , $ expected )
109+ {
110+ include_once __DIR__ . '/../../Fixtures/global_fn.php ' ;
111+ static ::bootKernel (['environment ' => $ env ]);
112+
113+ $ container = static ::$ kernel ->getContainer ();
114+ $ handler = new RollbarHandler ($ container );
115+
116+ /** @var \Rollbar\RollbarLogger $notifier */
117+ $ logger = RollbarNotifier::logger ();
118+ $ builder = $ logger ->getDataBuilder ();
119+
120+ $ method = new \ReflectionMethod ($ builder , 'getPerson ' );
121+ $ method ->setAccessible (true );
122+
123+ /** @var \Rollbar\Payload\Person $person */
124+ $ person = $ method ->invoke ($ builder );
125+
126+ $ this ->assertEquals ($ expected , [
127+ 'id ' => $ person ->getId (),
128+ 'username ' => $ person ->getUsername (),
129+ 'email ' => $ person ->getEmail (),
130+ ]);
131+ }
132+
133+ /**
134+ * @return array
135+ */
136+ public function generatePersonProviderCalls ()
137+ {
138+ return [
139+ [
140+ 'test_if ' ,
141+ [
142+ 'id ' => 'global_id ' ,
143+ 'username ' => null ,
144+ 'email ' => null ,
145+ ],
146+ ],
147+ [
148+ 'test_ifc ' ,
149+ [
150+ 'id ' => 'global_id ' ,
151+ 'username ' => 'global_username ' ,
152+ 'email ' => 'global_email ' ,
153+ ],
154+ ],
155+ ];
156+ }
157+
158+ /**
159+ * @dataProvider generateConstPersonCalls
160+ *
161+ * @param $env
162+ * @param $expected
163+ *
164+ * @throws \ReflectionException
165+ */
166+ public function testConstPerson ($ env , $ expected )
167+ {
168+ static ::bootKernel (['environment ' => $ env ]);
169+
170+ $ container = static ::$ kernel ->getContainer ();
171+ $ handler = new RollbarHandler ($ container );
172+
173+ /** @var \Rollbar\RollbarLogger $notifier */
174+ $ logger = RollbarNotifier::logger ();
175+ $ builder = $ logger ->getDataBuilder ();
176+
177+ $ method = new \ReflectionMethod ($ builder , 'getPerson ' );
178+ $ method ->setAccessible (true );
179+
180+ /** @var \Rollbar\Payload\Person $person */
181+ $ person = $ method ->invoke ($ builder );
182+
183+ $ this ->assertEquals ($ expected , [
184+ 'id ' => $ person ->getId (),
185+ 'username ' => $ person ->getUsername (),
186+ 'email ' => $ person ->getEmail (),
187+ ]);
188+ }
189+
190+ /**
191+ * @return array
192+ */
193+ public function generateConstPersonCalls ()
194+ {
195+ return [
196+ [
197+ 'test_p ' ,
198+ [
199+ 'id ' => 42 ,
200+ 'username ' => null ,
201+ 'email ' => null ,
202+ ],
203+ ],
204+ [
205+ 'test_pc ' ,
206+ [
207+ 'id ' => 42 ,
208+ 'username ' => 'system ' ,
209+ 'email ' => 'system@example.com ' ,
210+ ],
211+ ],
212+ ];
213+ }
95214}
0 commit comments