1616use Symfony \Component \HttpFoundation \Response ;
1717use Symfony \Component \Translation \DataCollector \TranslationDataCollector ;
1818use Symfony \Component \Translation \DataCollectorTranslator ;
19+ use Symfony \Component \Translation \Loader \ArrayLoader ;
20+ use Symfony \Component \Translation \Translator ;
1921
2022class TranslationDataCollectorTest extends TestCase
2123{
2224 public function testCollectEmptyMessages ()
2325 {
24- $ translator = $ this ->getTranslator ();
25- $ translator ->expects ($ this ->any ())->method ('getCollectedMessages ' )->willReturn ([]);
26-
27- $ dataCollector = new TranslationDataCollector ($ translator );
26+ $ dataCollector = new TranslationDataCollector (new DataCollectorTranslator ($ this ->createMock (Translator::class)));
2827 $ dataCollector ->lateCollect ();
2928
3029 $ this ->assertEquals (0 , $ dataCollector ->getCountMissings ());
@@ -35,53 +34,6 @@ public function testCollectEmptyMessages()
3534
3635 public function testCollect ()
3736 {
38- $ collectedMessages = [
39- [
40- 'id ' => 'foo ' ,
41- 'translation ' => 'foo (en) ' ,
42- 'locale ' => 'en ' ,
43- 'domain ' => 'messages ' ,
44- 'state ' => DataCollectorTranslator::MESSAGE_DEFINED ,
45- 'parameters ' => [],
46- 'transChoiceNumber ' => null ,
47- ],
48- [
49- 'id ' => 'bar ' ,
50- 'translation ' => 'bar (fr) ' ,
51- 'locale ' => 'fr ' ,
52- 'domain ' => 'messages ' ,
53- 'state ' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK ,
54- 'parameters ' => [],
55- 'transChoiceNumber ' => null ,
56- ],
57- [
58- 'id ' => 'choice ' ,
59- 'translation ' => 'choice ' ,
60- 'locale ' => 'en ' ,
61- 'domain ' => 'messages ' ,
62- 'state ' => DataCollectorTranslator::MESSAGE_MISSING ,
63- 'parameters ' => ['%count% ' => 3 ],
64- 'transChoiceNumber ' => 3 ,
65- ],
66- [
67- 'id ' => 'choice ' ,
68- 'translation ' => 'choice ' ,
69- 'locale ' => 'en ' ,
70- 'domain ' => 'messages ' ,
71- 'state ' => DataCollectorTranslator::MESSAGE_MISSING ,
72- 'parameters ' => ['%count% ' => 3 ],
73- 'transChoiceNumber ' => 3 ,
74- ],
75- [
76- 'id ' => 'choice ' ,
77- 'translation ' => 'choice ' ,
78- 'locale ' => 'en ' ,
79- 'domain ' => 'messages ' ,
80- 'state ' => DataCollectorTranslator::MESSAGE_MISSING ,
81- 'parameters ' => ['%count% ' => 4 , '%foo% ' => 'bar ' ],
82- 'transChoiceNumber ' => 4 ,
83- ],
84- ];
8537 $ expectedMessages = [
8638 [
8739 'id ' => 'foo ' ,
@@ -92,16 +44,18 @@ public function testCollect()
9244 'count ' => 1 ,
9345 'parameters ' => [],
9446 'transChoiceNumber ' => null ,
47+ 'fallbackLocale ' => null ,
9548 ],
9649 [
9750 'id ' => 'bar ' ,
9851 'translation ' => 'bar (fr) ' ,
99- 'locale ' => 'fr ' ,
52+ 'locale ' => 'en ' ,
10053 'domain ' => 'messages ' ,
10154 'state ' => DataCollectorTranslator::MESSAGE_EQUALS_FALLBACK ,
10255 'count ' => 1 ,
10356 'parameters ' => [],
10457 'transChoiceNumber ' => null ,
58+ 'fallbackLocale ' => 'fr ' ,
10559 ],
10660 [
10761 'id ' => 'choice ' ,
@@ -116,13 +70,22 @@ public function testCollect()
11670 ['%count% ' => 4 , '%foo% ' => 'bar ' ],
11771 ],
11872 'transChoiceNumber ' => 3 ,
73+ 'fallbackLocale ' => null ,
11974 ],
12075 ];
12176
122- $ translator = $ this ->getTranslator ();
123- $ translator ->expects ($ this ->any ())->method ('getCollectedMessages ' )->willReturn ($ collectedMessages );
124-
125- $ dataCollector = new TranslationDataCollector ($ translator );
77+ $ translator = new Translator ('en ' );
78+ $ translator ->setFallbackLocales (['fr ' ]);
79+ $ translator ->addLoader ('memory ' , new ArrayLoader ());
80+ $ translator ->addResource ('memory ' , ['foo ' => 'foo (en) ' ], 'en ' );
81+ $ translator ->addResource ('memory ' , ['bar ' => 'bar (fr) ' ], 'fr ' );
82+ $ dataCollectorTranslator = new DataCollectorTranslator ($ translator );
83+ $ dataCollectorTranslator ->trans ('foo ' );
84+ $ dataCollectorTranslator ->trans ('bar ' );
85+ $ dataCollectorTranslator ->trans ('choice ' , ['%count% ' => 3 ]);
86+ $ dataCollectorTranslator ->trans ('choice ' , ['%count% ' => 3 ]);
87+ $ dataCollectorTranslator ->trans ('choice ' , ['%count% ' => 4 , '%foo% ' => 'bar ' ]);
88+ $ dataCollector = new TranslationDataCollector ($ dataCollectorTranslator );
12689 $ dataCollector ->lateCollect ();
12790
12891 $ this ->assertEquals (1 , $ dataCollector ->getCountMissings ());
@@ -134,12 +97,10 @@ public function testCollect()
13497
13598 public function testCollectAndReset ()
13699 {
137- $ translator = $ this ->getTranslator ();
138- $ translator ->method ('getLocale ' )->willReturn ('fr ' );
139- $ translator ->method ('getFallbackLocales ' )->willReturn (['en ' ]);
140- $ translator ->method ('getGlobalParameters ' )->willReturn (['welcome ' => 'Welcome {name}! ' ]);
141-
142- $ dataCollector = new TranslationDataCollector ($ translator );
100+ $ translator = new Translator ('fr ' );
101+ $ translator ->setFallbackLocales (['en ' ]);
102+ $ translator ->addGlobalParameter ('welcome ' , 'Welcome {name}! ' );
103+ $ dataCollector = new TranslationDataCollector (new DataCollectorTranslator ($ translator ));
143104 $ dataCollector ->collect ($ this ->createMock (Request::class), $ this ->createMock (Response::class));
144105
145106 $ this ->assertSame ('fr ' , $ dataCollector ->getLocale ());
@@ -152,15 +113,4 @@ public function testCollectAndReset()
152113 $ this ->assertSame ([], $ dataCollector ->getFallbackLocales ());
153114 $ this ->assertSame ([], $ dataCollector ->getGlobalParameters ());
154115 }
155-
156- private function getTranslator ()
157- {
158- $ translator = $ this
159- ->getMockBuilder (DataCollectorTranslator::class)
160- ->disableOriginalConstructor ()
161- ->getMock ()
162- ;
163-
164- return $ translator ;
165- }
166116}
0 commit comments