Passed
Push — master ( 915f4f...ccadcf )
by Fabien
05:48
created

testGetExperiencesFR()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 43
Code Lines 40

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 40
nc 1
nop 0
dl 0
loc 43
rs 8.8571
c 0
b 0
f 0
1
<?php
2
3
/*
4
 * This file is part of the FabienCrassat\CurriculumVitaeBundle Symfony bundle.
5
 *
6
 * (c) Fabien Crassat <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace FabienCrassat\CurriculumVitaeBundle\Tests\Entity;
13
14
use FabienCrassat\CurriculumVitaeBundle\Entity\CurriculumVitae;
15
16
class CurriculumVitaeGetterFromExampleXMLFileTest extends \PHPUnit\Framework\TestCase
17
{
18
    private $curriculumVitae;
19
    private $lang;
20
    private $interface;
21
    private $arrayToCompare;
22
23
    public function setUp() {
24
        $this->lang = 'en';
25
    }
26
27
    public function testGetDropDownLanguages() {
28
        $this->interface      = 'getDropDownLanguages';
29
        $this->arrayToCompare = [
30
            'en' => 'English',
31
            'fr' => 'Français',
32
            'es' => 'español'];
33
34
        $this->assertCVInterface();
35
    }
36
37
    public function testGetFollowMe() {
38
        $this->interface      = 'getFollowMe';
39
        $this->arrayToCompare = [
40
            'linkedin' => [
41
                'title' => 'Linked In',
42
                'url'   => 'http://www.linkedin.com',
43
                'icon'  => 'bundles/fabiencrassatcurriculumvitae/img/linkedin.png'],
44
            'viadeo' => [
45
                'title' => 'Viadeo',
46
                'url'   => 'http://www.viadeo.com',
47
                'icon'  => 'bundles/fabiencrassatcurriculumvitae/img/viadeo.png'],
48
            'monster' => [
49
                'title' => 'Monster',
50
                'url'   => 'http://beknown.com',
51
                'icon'  => 'bundles/fabiencrassatcurriculumvitae/img/monster.png'],
52
            'twitter' => [
53
                'title' => 'Twitter',
54
                'url'   => 'https://twitter.com',
55
                'icon'  => 'bundles/fabiencrassatcurriculumvitae/img/twitter.png'],
56
            'googleplus' => [
57
                'title' => 'Google+',
58
                'url'   => 'https://plus.google.com',
59
                'icon'  => 'bundles/fabiencrassatcurriculumvitae/img/googleplus.png'],
60
            'facebook' => [
61
                'title' => 'Facebook',
62
                'url'   => 'https://www.facebook.com',
63
                'icon'  => 'bundles/fabiencrassatcurriculumvitae/img/facebook.png'],
64
            'scrum' => [
65
                'title' => 'Scrum',
66
                'url'   => 'http://www.scrumalliance.org',
67
                'icon'  => 'bundles/fabiencrassatcurriculumvitae/img/scrum-alliance.png']
68
        ];
69
70
        $this->assertCVInterface();
71
72
        $this->lang = 'fr';
73
        $this->assertCVInterface();
74
    }
75
76
    public function testGetLookingFor() {
77
        $this->interface = 'getLookingFor';
78
79
        $this->arrayToCompare = [
80
            'experience'   => 'Curriculum Vitae Title',
81
            'presentation' => 'Sed ultrices urna condimentum, luctus nisi sit amet, vehicula dolor. Proin at augue sapien. Phasellus nec sem euismod, ultrices orci sit amet, ultrices turpis. Phasellus ut libero tellus. Maecenas nec neque sagittis, scelerisque orci sed, posuere ligula. Curabitur euismod malesuada purus, ac semper quam. Suspendisse consequat, est a volutpat molestie, metus risus porta est, id interdum turpis justo ac lorem. Mauris id mollis nisi, ut hendrerit augue. Vestibulum aliquet felis aliquet risus porttitor, aliquam porttitor nibh euismod.'
82
        ];
83
        $this->assertCVInterface();
84
85
        $this->lang           = 'fr';
86
        $this->arrayToCompare = [
87
            'experience'   => 'Titre du curriculum vitae',
88
            'presentation' => 'Mauris rutrum justo ac bibendum ultrices. Mauris a dolor a diam'
89
            .' tempus ornare vel non urna. Donec a dui vel nunc ultrices porta non vitae felis.'
90
            .' Ut blandit ullamcorper orci. Quisque quis justo vitae nisl auctor laoreet non eget'
91
            .' mauris. Sed volutpat enim est, vitae vulputate nibh laoreet gravida. Duis nec'
92
            .' tincidunt ante. Nullam metus turpis, accumsan nec laoreet et, consectetur et'
93
            .' ligula. Curabitur convallis feugiat lorem, sit amet tincidunt arcu sollicitudin'
94
            .' vel. Aliquam erat volutpat. In odio elit, accumsan in facilisis at, ultricies'
95
            .' quis justo.'
96
        ];
97
        $this->assertCVInterface();
98
    }
99
100
    public function testGetExperiencesEN() {
101
        $this->interface = 'getExperiences';
102
103
        $this->arrayToCompare = [
104
            'FirstExperience' => [
105
                'date'    => 'Jan 2007 - Present',
106
                'job'     => 'My current job',
107
                'society' => [
108
                    'name'    => 'My Company',
109
                    'address' => 'the address of the company',
110
                    'siteurl' => 'http://www.MyCompany.com'],
111
                'missions' => [
112
                    'item' => [
113
                        0 => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit.',
114
                        1 => 'Suspendisse nec mauris eu orci dapibus mollis ac ac mi.']]],
115
            'SecondExperience' => [
116
                'collapse' => 'false',
117
                'date'     => 'Sept - Dec 2006',
118
                'job'      => 'My previous job',
119
                'society'  => [
120
                    'name'    => 'My Other Company',
121
                    'address' => 'the address of the company',
122
                    'siteurl' => 'http://www.MyOtherCompany.com']],
123
            'ThirdExperience' => [
124
                'date'    => 'Summer 2006',
125
                'job'     => 'A summer job',
126
                'society' => [
127
                    'name'    => 'A company wihtout site',
128
                    'address' => 'the address of the company'],
129
                'missions' => [
130
                    'item' => [
131
                        0 => 'Suspendisse et arcu eget est feugiat elementum.']]],
132
            'FourthExperience' => [
133
                'collapse' => 'true',
134
                'date'     => 'Before 2006',
135
                'job'      => 'The job of my life',
136
                'society'  => 'A society with a name per language',
137
                'missions' => [
138
                    'item' => [
139
                        0 => 'In et felis leo. Donec viverra vestibulum eros in sagittis.']]]
140
        ];
141
        $this->assertCVInterface();
142
    }
143
144
    public function testGetExperiencesFR() {
145
        $this->interface = 'getExperiences';
146
147
        $this->lang           = 'fr';
148
        $this->arrayToCompare = [
149
            'FirstExperience' => [
150
                'date'    => 'Jan. 2007 - Aujourd\'hui',
151
                'job'     => 'Mon poste actuel',
152
                'society' => [
153
                    'name'    => 'My Company',
154
                    'address' => 'the address of the company',
155
                    'siteurl' => 'http://www.MyCompany.com'],
156
                'missions' => [
157
                    'item' => [
158
                        0 => 'Donec gravida enim viverra tempor dignissim.',
159
                        1 => 'Sed a eros at mauris placerat adipiscing.']]],
160
            'SecondExperience' => [
161
                'collapse' => 'false',
162
                'date'     => 'Sept - Dec 2006',
163
                'job'      => 'Mon poste précédent',
164
                'society'  => [
165
                    'name'    => 'Mon autre compagnie',
166
                    'address' => 'l\'adresse de la compagnie',
167
                    'siteurl' => 'http://www.MyOtherCompany.com']],
168
            'ThirdExperience' => [
169
                'date'    => 'Summer 2006',
170
                'job'     => 'Un travail d\'été',
171
                'society' => [
172
                    'name'    => 'Une compagnie sans site',
173
                    'address' => 'l\'adresse de la compagnie'],
174
                'missions' => [
175
                    'item' => [
176
                        0 => 'Suspendisse et arcu eget est feugiat elementum.']]],
177
            'FourthExperience' => [
178
                'collapse' => 'true',
179
                'date'     => 'Before 2006',
180
                'job'      => 'Le job de ma vie',
181
                'society'  => 'Une société avec un nom par langue',
182
                'missions' => [
183
                    'item' => [
184
                        0 => 'In et felis leo. Donec viverra vestibulum eros in sagittis.']]]
185
        ];
186
        $this->assertCVInterface();
187
    }
188
189
    public function testGetSkills() {
190
        $this->interface = 'getSkills';
191
192
        $this->arrayToCompare = [
193
            'Functional' => [
194
                'title' => 'Skills',
195
                'lines' => [
196
                    'success' => [
197
                        'percentage' => 90,
198
                        'class'      => 'success',
199
                        'striped'    => 'true',
200
                        'label'      => 'Increasing Skills',
201
                    ],
202
                    'otherSucess' => [
203
                        'percentage' => 90,
204
                        'class'      => 'success',
205
                        'label'      => 'success',
206
                    ],
207
                    'info' => [
208
                        'percentage' => 40,
209
                        'class'      => 'info',
210
                        'striped'    => 'false',
211
                        'label'      => 'info',
212
                    ],
213
                    'warning' => [
214
                        'percentage' => 20,
215
                        'class'      => 'warning',
216
                        'label'      => 'warning',
217
                    ],
218
                    'danger' => [
219
                        'percentage' => 10,
220
                        'class'      => 'danger',
221
                        'label'      => 'danger',
222
                    ],
223
                    'noClass' => [
224
                        'percentage' => 5,
225
                        'label'      => 'noClass',
226
                    ],
227
                    'nothing' => [
228
                        'label' => 'nothing',
229
                    ]
230
                ]
231
            ],
232
            'OtherSkill' => [
233
                'title' => 'One other',
234
                'lines' => [
235
                    'success' => [
236
                        'percentage' => 90,
237
                        'class'      => 'success',
238
                        'striped'    => 'false',
239
                        'label'      => 'Skills List',
240
                    ],
241
                    'info' => [
242
                        'percentage' => 40,
243
                        'class'      => 'info',
244
                        'striped'    => 'false',
245
                        'label'      => 'Label',
246
                    ],
247
                    'warning' => [
248
                        'percentage' => 20,
249
                        'class'      => 'warning',
250
                        'striped'    => 'false',
251
                        'label'      => 'Label',
252
                    ],
253
                    'danger' => [
254
                        'percentage' => 10,
255
                        'class'      => 'danger',
256
                        'striped'    => 'true',
257
                        'label'      => 'Label',
258
                    ]
259
                ]
260
            ]
261
        ];
262
        $this->assertCVInterface();
263
264
        $this->lang = 'fr';
265
        // Only set the french labels
266
        $arrayToChange                                            = $this->arrayToCompare;
267
        $arrayToChange['Functional']['title']                     = 'Compétences';
268
        $arrayToChange['Functional']['lines']['success']['label'] = 'Compétences grandissantes';
269
        $arrayToChange['OtherSkill']['title']                     = 'Une autre';
270
        $arrayToChange['OtherSkill']['lines']['success']['label'] = 'Liste de Compétences';
271
272
        $this->arrayToCompare = $arrayToChange;
273
        $this->assertCVInterface();
274
    }
275
276
    public function testGetEducations() {
277
        $this->interface = 'getEducations';
278
279
        $this->arrayToCompare = [
280
            'University' => [
281
                'date'         => '2002 - 2005',
282
                'education'    => 'My diploma in my university',
283
                'descriptions' => ['item' => [
284
                    0 => 'Quisque eu sapien tortor. Morbi erat lorem, facilisis tempor pulvinar eu, sollicitudin a tellus. Phasellus consequat viverra mattis. Vestibulum convallis ornare eros, ac placerat neque. Aliquam viverra iaculis ex, egestas ornare ipsum fringilla id. Fusce turpis leo, iaculis id vestibulum sed, pharetra malesuada velit. Ut risus leo, consectetur eu pretium id, convallis in nisi. Sed vel varius nulla. Sed id scelerisque est.'
285
                ]]
286
            ],
287
            'HighSchool' => [
288
                'collapse'     => 'false',
289
                'date'         => 'June 2002',
290
                'education'    => 'My diploma in my high school',
291
                'descriptions' => ['item' => [
292
                    0 => 'Duis egestas ipsum nulla, et maximus ligula mollis sed. Phasellus aliquet ac orci in fermentum. Donec cursus id tellus ac sagittis. Praesent et elit tincidunt sem lobortis porttitor. Suspendisse lorem purus, gravida et tellus in, ultrices ornare libero. In bibendum consectetur enim nec commodo. Sed non neque sodales, mollis arcu et, dapibus purus.',
293
                    1 => 'Duis faucibus tortor nec enim auctor ultrices non vitae erat. Suspendisse in scelerisque ipsum. Proin eu neque rutrum, condimentum ligula vitae, tempor metus. Quisque non massa at nibh maximus rutrum ut ac ligula. Fusce dolor mi, imperdiet tincidunt molestie non, volutpat quis mauris. In aliquet laoreet dolor in pharetra. Pellentesque feugiat mollis turpis, vel faucibus metus suscipit sed.'
294
                ]]
295
            ],
296
            'FirstSchool' => [
297
                'collapse'  => 'true',
298
                'date'      => 'June 2000',
299
                'education' => 'My diploma in my first school'
300
            ]
301
        ];
302
        $this->assertCVInterface();
303
304
        $this->lang           = 'fr';
305
        $this->arrayToCompare = [
306
            'University' => [
307
                'date'         => '2002 - 2005',
308
                'education'    => 'Mon diplôme dans mon université',
309
                'descriptions' => ['item' => [
310
                    0 => 'Suspendisse pellentesque eros eget enim pulvinar maximus. Mauris tristique hendrerit arcu eleifend pharetra. Donec et ultricies lorem. Maecenas non ipsum iaculis, efficitur mi nec, gravida felis. Etiam facilisis tincidunt justo. Nulla nibh mi, vulputate vitae lectus a, egestas porta magna. Nulla nec nisl gravida, venenatis mauris sit amet, tincidunt ligula. Praesent dignissim lectus accumsan ullamcorper suscipit.',
311
                    1 => 'Vestibulum elementum cursus sagittis. Donec tristique nisl ac urna varius, vitae tempor dui sagittis. Aliquam libero urna, ultricies eu luctus sit amet, fermentum nec sapien. Phasellus ultrices felis at tempus tincidunt. Nullam at augue non justo lacinia vestibulum. Morbi vel dui eget enim consectetur ultrices faucibus sed turpis. Integer maximus enim eu mollis dignissim. Fusce aliquet est nibh, non lacinia urna hendrerit ac.'
312
                ]]
313
            ],
314
            'HighSchool' => [
315
                'collapse'     => 'false',
316
                'date'         => 'Juin 2002',
317
                'education'    => 'Mon diplôme dans mon lycée',
318
                'descriptions' => ['item' => [
319
                    0 => 'Aenean pellentesque, arcu eu commodo mollis, lacus augue vehicula justo, nec interdum nisl quam eu arcu. Aliquam ultricies purus vitae justo accumsan congue. Aliquam fermentum in arcu nec auctor. Cras tincidunt dapibus scelerisque. Duis pretium ac massa ac varius. Vivamus eget imperdiet risus. Mauris feugiat nisi non lectus laoreet, vitae ultrices ex dapibus. Aliquam non sagittis ex. Phasellus eget congue diam.'
320
                ]]
321
            ],
322
            'FirstSchool' => [
323
                'collapse'  => 'true',
324
                'date'      => 'Juin 2000',
325
                'education' => 'Mon diplôme dans mon collège'
326
            ]
327
        ];
328
        $this->assertCVInterface();
329
    }
330
331
    public function testGetLanguageSkills() {
332
        $this->interface = 'getLanguageSkills';
333
334
        $frenchFlag  = 'bundles/fabiencrassatcurriculumvitae/img/Flag-of-France.png';
335
        $englishFlag = 'bundles/fabiencrassatcurriculumvitae/img/Flag-of-United-Kingdom.png';
336
337
        $this->arrayToCompare = [
338
            'French' => [
339
                'title'       => 'French',
340
                'description' => 'My French level of the skill.',
341
                'icon'        => $frenchFlag
342
            ],
343
            'English' => [
344
                'title'       => 'English',
345
                'description' => 'My English level of the skill.',
346
                'icon'        => $englishFlag
347
            ]
348
        ];
349
        $this->assertCVInterface();
350
351
        $this->lang           = 'fr';
352
        $this->arrayToCompare = [
353
            'French' => [
354
                'title'       => 'Français',
355
                'description' => 'Mon niveau de Français.',
356
                'icon'        => $frenchFlag
357
            ],
358
            'English' => [
359
                'title'       => 'Anglais',
360
                'description' => 'Mon niveau d\'Anglais.',
361
                'icon'        => $englishFlag
362
            ]
363
        ];
364
        $this->assertCVInterface();
365
    }
366
367
    public function testGetMiscellaneous() {
368
        $this->interface = 'getMiscellaneous';
369
370
        $this->arrayToCompare = [
371
            'Practical' => [
372
                'title'         => 'Practices',
373
                'miscellaneous' => 'My practices'
374
            ]
375
        ];
376
        $this->assertCVInterface();
377
378
        $this->lang           = 'fr';
379
        $this->arrayToCompare = [
380
            'Practical' => [
381
                'title'         => 'Pratiques',
382
                'miscellaneous' => 'Mes pratiques',
383
                'description'   => 'Integer rutrum congue odio. Donec ut sem sed ligula blandit rutrum consequat in quam. Donec quis pharetra lacus. Pellentesque turpis neque, dignissim non erat quis, tincidunt tempus arcu. Praesent eget blandit odio. Nullam et felis vitae nulla tincidunt efficitur at vel nulla. Nam rhoncus eu est mattis gravida. Nam id vulputate ex. Pellentesque aliquam arcu eu lacinia commodo.'
384
            ]
385
        ];
386
        $this->assertCVInterface();
387
    }
388
389
    private function assertCVInterface($pathToFile = '/../../Resources/data/example.xml') {
390
        $this->curriculumVitae = new CurriculumVitae(__DIR__.$pathToFile, $this->lang);
391
        $this->assertEquals($this->arrayToCompare, $this->curriculumVitae->{$this->interface}());
392
    }
393
}
394