xref: /webtrees/tests/app/Census/CensusColumnSurnameGivenNamesTest.php (revision e7f56f2af615447ab1a7646851f88b465ace9e04)
1<?php
2/**
3 * webtrees: online genealogy
4 * Copyright (C) 2018 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 Mockery;
21
22/**
23 * Test harness for the class CensusColumnSurnameGivenNames
24 */
25class CensusColumnSurnameGivenNamesTest extends \Fisharebest\Webtrees\TestCase
26{
27    /**
28     * Delete mock objects
29     *
30     * @return void
31     */
32    public function tearDown()
33    {
34        Mockery::close();
35    }
36
37    /**
38     * @covers \Fisharebest\Webtrees\Census\CensusColumnSurnameGivenNames
39     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
40     *
41     * @return void
42     */
43    public function testOneGivenName()
44    {
45        $individual = Mockery::mock('Fisharebest\Webtrees\Individual');
46        $individual->shouldReceive('getAllNames')->andReturn([
47            [
48                'givn' => 'Joe',
49                'surname' => 'Sixpack',
50            ],
51        ]);
52        $individual->shouldReceive('getSpouseFamilies')->andReturn([]);
53
54        $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
55        $census->shouldReceive('censusDate')->andReturn('');
56
57        $column = new CensusColumnSurnameGivenNames($census, '', '');
58
59        $this->assertSame('Sixpack, Joe', $column->generate($individual, $individual));
60    }
61
62    /**
63     * @covers \Fisharebest\Webtrees\Census\CensusColumnSurnameGivenNames
64     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
65     *
66     * @return void
67     */
68    public function testMultipleGivenNames()
69    {
70        $individual = Mockery::mock('Fisharebest\Webtrees\Individual');
71        $individual->shouldReceive('getAllNames')->andReturn([
72            [
73                'givn' => 'Joe Fred',
74                'surname' => 'Sixpack',
75            ],
76        ]);
77        $individual->shouldReceive('getSpouseFamilies')->andReturn([]);
78
79        $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
80        $census->shouldReceive('censusDate')->andReturn('');
81
82        $column = new CensusColumnSurnameGivenNames($census, '', '');
83
84        $this->assertSame('Sixpack, Joe Fred', $column->generate($individual, $individual));
85    }
86
87    /**
88     * @covers \Fisharebest\Webtrees\Census\CensusColumnSurnameGivenNames
89     * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn
90     *
91     * @return void
92     */
93    public function testNoName()
94    {
95        $individual = Mockery::mock('Fisharebest\Webtrees\Individual');
96        $individual->shouldReceive('getAllNames')->andReturn([]);
97        $individual->shouldReceive('getSpouseFamilies')->andReturn([]);
98
99        $census = Mockery::mock('Fisharebest\Webtrees\Census\CensusInterface');
100        $census->shouldReceive('censusDate')->andReturn('');
101
102        $column = new CensusColumnSurnameGivenNames($census, '', '');
103
104        $this->assertSame('', $column->generate($individual, $individual));
105    }
106}
107