xref: /webtrees/tests/app/Census/CensusColumnSurnameGivenNamesTest.php (revision db3aeb3eb846bb233f34557aedb1559aadf9275a)
1<?php
2/**
3 * webtrees: online genealogy
4 * Copyright (C) 2019 webtrees development team
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16declare(strict_types=1);
17
18namespace Fisharebest\Webtrees\Census;
19
20use Fisharebest\Webtrees\Individual;
21use Illuminate\Support\Collection;
22
23/**
24 * Test harness for the class CensusColumnSurnameGivenNames
25 */
26class CensusColumnSurnameGivenNamesTest extends \Fisharebest\Webtrees\TestCase
27{
28    /**
29     * @covers \Fisharebest\Webtrees\Census\CensusColumnSurnameGivenNames
30     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
31     *
32     * @return void
33     */
34    public function testOneGivenName(): void
35    {
36        $individual = $this->createMock(Individual::class);
37        $individual->method('getAllNames')->willReturn([
38            [
39                'givn' => 'Joe',
40                'surname' => 'Sixpack',
41            ],
42        ]);
43        $individual->method('spouseFamilies')->willReturn(new Collection());
44
45        $census = $this->createMock(CensusInterface::class);
46        $census->method('censusDate')->willReturn('');
47
48        $column = new CensusColumnSurnameGivenNames($census, '', '');
49
50        $this->assertSame('Sixpack, Joe', $column->generate($individual, $individual));
51    }
52
53    /**
54     * @covers \Fisharebest\Webtrees\Census\CensusColumnSurnameGivenNames
55     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
56     *
57     * @return void
58     */
59    public function testMultipleGivenNames(): void
60    {
61        $individual = $this->createMock(Individual::class);
62        $individual->method('getAllNames')->willReturn([
63            [
64                'givn' => 'Joe Fred',
65                'surname' => 'Sixpack',
66            ],
67        ]);
68        $individual->method('spouseFamilies')->willReturn(new Collection());
69
70        $census = $this->createMock(CensusInterface::class);
71        $census->method('censusDate')->willReturn('');
72
73        $column = new CensusColumnSurnameGivenNames($census, '', '');
74
75        $this->assertSame('Sixpack, Joe Fred', $column->generate($individual, $individual));
76    }
77
78    /**
79     * @covers \Fisharebest\Webtrees\Census\CensusColumnSurnameGivenNames
80     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
81     *
82     * @return void
83     */
84    public function testNoName(): void
85    {
86        $individual = $this->createMock(Individual::class);
87        $individual->method('getAllNames')->willReturn([]);
88        $individual->method('spouseFamilies')->willReturn(new Collection());
89
90        $census = $this->createMock(CensusInterface::class);
91        $census->method('censusDate')->willReturn('');
92
93        $column = new CensusColumnSurnameGivenNames($census, '', '');
94
95        $this->assertSame('', $column->generate($individual, $individual));
96    }
97}
98