11<?php
2+
23namespace Tests \SymfonyRollbarBundle \Provider ;
34
5+ use Rollbar \Payload \Level ;
46use Symfony \Bundle \FrameworkBundle \Test \KernelTestCase ;
7+ use Symfony \Component \Validator \Constraints \DateTime ;
58
69/**
710 * Class RollbarHandlerTest
11+ *
812 * @package Tests\SymfonyRollbarBundle\Provider
913 */
1014class RollbarHandlerTest extends KernelTestCase
@@ -19,7 +23,7 @@ public function setUp()
1923 public function testRollbarHandler ()
2024 {
2125 $ container = static ::$ kernel ->getContainer ();
22- $ handler = new \SymfonyRollbarBundle \Provider \RollbarHandler ($ container );
26+ $ handler = new \SymfonyRollbarBundle \Provider \RollbarHandler ($ container );
2327
2428 $ hContainer = $ handler ->getContainer ();
2529 $ this ->assertEquals ($ container , $ hContainer );
@@ -28,33 +32,78 @@ public function testRollbarHandler()
2832
2933 /**
3034 * @dataProvider recordGenerator
35+ *
3136 * @param $record
3237 */
3338 public function testWrite ($ record )
3439 {
35- $ this ->markTestIncomplete ('TODO: write body ' );
40+ $ container = static ::$ kernel ->getContainer ();
41+ $ handler = new \SymfonyRollbarBundle \Provider \RollbarHandler ($ container );
42+
43+ $ property = new \ReflectionProperty ($ handler , 'hasRecords ' );
44+ $ property ->setAccessible (true );
45+
46+ $ method = new \ReflectionMethod ($ handler , 'write ' );
47+ $ method ->setAccessible (true );
48+
49+ $ this ->assertFalse ($ property ->getValue ($ handler ));
50+ $ method ->invoke ($ handler , $ record );
51+ $ this ->assertTrue ($ property ->getValue ($ handler ));
3652 }
3753
54+ /**
55+ * @return array
56+ */
3857 public function recordGenerator ()
3958 {
4059 return [
4160 [
4261 [
43- 'context ' => [
44- 'level ' => \Monolog \Logger::ERROR ,
62+ 'message ' => 'RecordGenerator :: #1 ' ,
63+ 'datetime ' => new \DateTime (),
64+ 'level ' => \Monolog \Logger::ERROR ,
65+ 'level_name ' => \Monolog \Logger::ERROR ,
66+ 'channel ' => 'symfony.rollbar ' ,
67+ 'extra ' => [],
68+ 'context ' => [
4569 'exception ' => new \Exception ('RecordGenerator :: #1 ' ),
46- 'message ' => 'RecordGenerator :: #1 ' ,
47- ]
48- ]
70+ ],
71+ ],
4972 ],
5073 [
5174 [
52- 'context ' => [
53- 'level ' => \Monolog \Logger::ERROR ,
54- 'message ' => 'RecordGenerator :: #2 ' ,
55- ]
56- ]
75+ 'message ' => 'RecordGenerator :: #2 ' ,
76+ 'datetime ' => new \DateTime (),
77+ 'level ' => \Monolog \Logger::ERROR ,
78+ 'level_name ' => \Monolog \Logger::ERROR ,
79+ 'channel ' => 'symfony.rollbar ' ,
80+ 'extra ' => [],
81+ 'context ' => [],
82+ ],
5783 ],
5884 ];
5985 }
86+
87+ /**
88+ * @dataProvider recordGenerator
89+ * @param $record
90+ */
91+ public function testClose ($ record )
92+ {
93+ $ container = static ::$ kernel ->getContainer ();
94+ $ handler = new \SymfonyRollbarBundle \Provider \RollbarHandler ($ container );
95+
96+ $ property = new \ReflectionProperty ($ handler , 'hasRecords ' );
97+ $ property ->setAccessible (true );
98+
99+ $ method = new \ReflectionMethod ($ handler , 'write ' );
100+ $ method ->setAccessible (true );
101+
102+ $ this ->assertFalse ($ property ->getValue ($ handler ));
103+ $ method ->invoke ($ handler , $ record );
104+ $ this ->assertTrue ($ property ->getValue ($ handler ));
105+
106+ $ handler ->close ();
107+ $ this ->assertFalse ($ property ->getValue ($ handler ));
108+ }
60109}
0 commit comments