1<?php 2 3/** 4 * webtrees: online genealogy 5 * Copyright (C) 2023 webtrees development team 6 * This program is free software: you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation, either version 3 of the License, or 9 * (at your option) any later version. 10 * This program is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 * GNU General Public License for more details. 14 * You should have received a copy of the GNU General Public License 15 * along with this program. If not, see <https://www.gnu.org/licenses/>. 16 */ 17 18declare(strict_types=1); 19 20namespace Fisharebest\Webtrees\Census; 21 22use Fisharebest\Webtrees\Individual; 23use Fisharebest\Webtrees\Place; 24use Fisharebest\Webtrees\TestCase; 25use Illuminate\Support\Collection; 26 27/** 28 * Test harness for the class CensusColumnBornForeignParts 29 */ 30class CensusColumnBornForeignPartsTest extends TestCase 31{ 32 /** 33 * Get place mock. 34 * 35 * @param string $place Gedcom Place 36 * 37 * @return Place 38 */ 39 private function getPlaceMock(string $place): Place 40 { 41 $placeParts = explode(', ', $place); 42 43 $placeMock = $this->createMock(Place::class); 44 $placeMock->method('gedcomName')->willReturn($place); 45 $placeMock->method('lastParts')->willReturn((new Collection($placeParts))->slice(-1)); 46 47 return $placeMock; 48 } 49 50 /** 51 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 52 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 53 * 54 * @return void 55 */ 56 public function testBornEnglandCensusEngland(): void 57 { 58 $individual = $this->createMock(Individual::class); 59 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('London, England')); 60 61 $census = $this->createMock(CensusInterface::class); 62 $census->method('censusPlace')->willReturn('England'); 63 64 $column = new CensusColumnBornForeignParts($census, '', ''); 65 66 self::assertSame('', $column->generate($individual, $individual)); 67 } 68 69 /** 70 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 71 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 72 * 73 * @return void 74 */ 75 public function testBornWalesCensusEngland(): void 76 { 77 $individual = $this->createMock(Individual::class); 78 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Cardiff, Wales')); 79 80 $census = $this->createMock(CensusInterface::class); 81 $census->method('censusPlace')->willReturn('England'); 82 83 $column = new CensusColumnBornForeignParts($census, '', ''); 84 85 self::assertSame('', $column->generate($individual, $individual)); 86 } 87 88 /** 89 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 90 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 91 * 92 * @return void 93 */ 94 public function testBornScotlandCensusEngland(): void 95 { 96 $individual = $this->createMock(Individual::class); 97 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Edinburgh, Scotland')); 98 99 $census = $this->createMock(CensusInterface::class); 100 $census->method('censusPlace')->willReturn('England'); 101 102 $column = new CensusColumnBornForeignParts($census, '', ''); 103 104 self::assertSame('S', $column->generate($individual, $individual)); 105 } 106 107 /** 108 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 109 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 110 * 111 * @return void 112 */ 113 public function testBornIrelandCensusEngland(): void 114 { 115 $individual = $this->createMock(Individual::class); 116 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Dublin, Ireland')); 117 118 $census = $this->createMock(CensusInterface::class); 119 $census->method('censusPlace')->willReturn('England'); 120 121 $column = new CensusColumnBornForeignParts($census, '', ''); 122 123 self::assertSame('I', $column->generate($individual, $individual)); 124 } 125 126 /** 127 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 128 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 129 * 130 * @return void 131 */ 132 public function testBornForeignCensusEngland(): void 133 { 134 $individual = $this->createMock(Individual::class); 135 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Elbonia')); 136 137 $census = $this->createMock(CensusInterface::class); 138 $census->method('censusPlace')->willReturn('England'); 139 140 $column = new CensusColumnBornForeignParts($census, '', ''); 141 142 self::assertSame('F', $column->generate($individual, $individual)); 143 } 144 145 /** 146 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 147 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 148 * 149 * @return void 150 */ 151 public function testBornEnglandCensusIreland(): void 152 { 153 $individual = $this->createMock(Individual::class); 154 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('London, England')); 155 156 $census = $this->createMock(CensusInterface::class); 157 $census->method('censusPlace')->willReturn('Ireland'); 158 159 $column = new CensusColumnBornForeignParts($census, '', ''); 160 161 self::assertSame('E', $column->generate($individual, $individual)); 162 } 163 164 /** 165 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 166 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 167 * 168 * @return void 169 */ 170 public function testBornWalesCensusIreland(): void 171 { 172 $individual = $this->createMock(Individual::class); 173 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Cardiff, Wales')); 174 175 $census = $this->createMock(CensusInterface::class); 176 $census->method('censusPlace')->willReturn('Ireland'); 177 178 $column = new CensusColumnBornForeignParts($census, '', ''); 179 180 self::assertSame('E', $column->generate($individual, $individual)); 181 } 182 183 /** 184 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 185 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 186 * 187 * @return void 188 */ 189 public function testBornScotlandCensusIreland(): void 190 { 191 $individual = $this->createMock(Individual::class); 192 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Edinburgh, Scotland')); 193 194 $census = $this->createMock(CensusInterface::class); 195 $census->method('censusPlace')->willReturn('Ireland'); 196 197 $column = new CensusColumnBornForeignParts($census, '', ''); 198 199 self::assertSame('S', $column->generate($individual, $individual)); 200 } 201 202 /** 203 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 204 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 205 * 206 * @return void 207 */ 208 public function testBornIrelandCensusIreland(): void 209 { 210 $individual = $this->createMock(Individual::class); 211 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Dublin, Ireland')); 212 213 $census = $this->createMock(CensusInterface::class); 214 $census->method('censusPlace')->willReturn('Ireland'); 215 216 $column = new CensusColumnBornForeignParts($census, '', ''); 217 218 self::assertSame('', $column->generate($individual, $individual)); 219 } 220 221 /** 222 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 223 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 224 * 225 * @return void 226 */ 227 public function testBornForeignCensusIreland(): void 228 { 229 $individual = $this->createMock(Individual::class); 230 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Elbonia')); 231 232 $census = $this->createMock(CensusInterface::class); 233 $census->method('censusPlace')->willReturn('Ireland'); 234 235 $column = new CensusColumnBornForeignParts($census, '', ''); 236 237 self::assertSame('F', $column->generate($individual, $individual)); 238 } 239 240 /** 241 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 242 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 243 * 244 * @return void 245 */ 246 public function testBornEnglandCensusScotland(): void 247 { 248 $individual = $this->createMock(Individual::class); 249 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('London, England')); 250 251 $census = $this->createMock(CensusInterface::class); 252 $census->method('censusPlace')->willReturn('Scotland'); 253 254 $column = new CensusColumnBornForeignParts($census, '', ''); 255 256 self::assertSame('E', $column->generate($individual, $individual)); 257 } 258 259 /** 260 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 261 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 262 * 263 * @return void 264 */ 265 public function testBornWalesCensusScotland(): void 266 { 267 $individual = $this->createMock(Individual::class); 268 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Cardiff, Wales')); 269 270 $census = $this->createMock(CensusInterface::class); 271 $census->method('censusPlace')->willReturn('Scotland'); 272 273 $column = new CensusColumnBornForeignParts($census, '', ''); 274 275 self::assertSame('E', $column->generate($individual, $individual)); 276 } 277 278 /** 279 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 280 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 281 * 282 * @return void 283 */ 284 public function testBornScotlandCensusScotland(): void 285 { 286 $individual = $this->createMock(Individual::class); 287 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Edinburgh, Scotland')); 288 289 $census = $this->createMock(CensusInterface::class); 290 $census->method('censusPlace')->willReturn('Scotland'); 291 292 $column = new CensusColumnBornForeignParts($census, '', ''); 293 294 self::assertSame('', $column->generate($individual, $individual)); 295 } 296 297 /** 298 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 299 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 300 * 301 * @return void 302 */ 303 public function testBornIrelandCensusScotland(): void 304 { 305 $individual = $this->createMock(Individual::class); 306 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Dublin, Ireland')); 307 308 $census = $this->createMock(CensusInterface::class); 309 $census->method('censusPlace')->willReturn('Scotland'); 310 311 $column = new CensusColumnBornForeignParts($census, '', ''); 312 313 self::assertSame('I', $column->generate($individual, $individual)); 314 } 315 316 /** 317 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 318 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 319 * 320 * @return void 321 */ 322 public function testBornForeignCensusScotland(): void 323 { 324 $individual = $this->createMock(Individual::class); 325 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Elbonia')); 326 327 $census = $this->createMock(CensusInterface::class); 328 $census->method('censusPlace')->willReturn('Scotland'); 329 330 $column = new CensusColumnBornForeignParts($census, '', ''); 331 332 self::assertSame('F', $column->generate($individual, $individual)); 333 } 334 335 /** 336 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 337 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 338 * 339 * @return void 340 */ 341 public function testBornEnglandCensusWales(): void 342 { 343 $individual = $this->createMock(Individual::class); 344 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('London, England')); 345 346 $census = $this->createMock(CensusInterface::class); 347 $census->method('censusPlace')->willReturn('Wales'); 348 349 $column = new CensusColumnBornForeignParts($census, '', ''); 350 351 self::assertSame('', $column->generate($individual, $individual)); 352 } 353 354 /** 355 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 356 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 357 * 358 * @return void 359 */ 360 public function testBornWalesCensusWales(): void 361 { 362 $individual = $this->createMock(Individual::class); 363 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Cardiff, Wales')); 364 365 $census = $this->createMock(CensusInterface::class); 366 $census->method('censusPlace')->willReturn('Wales'); 367 368 $column = new CensusColumnBornForeignParts($census, '', ''); 369 370 self::assertSame('', $column->generate($individual, $individual)); 371 } 372 373 /** 374 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 375 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 376 * 377 * @return void 378 */ 379 public function testBornScotlandCensusWales(): void 380 { 381 $individual = $this->createMock(Individual::class); 382 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Edinburgh, Scotland')); 383 384 $census = $this->createMock(CensusInterface::class); 385 $census->method('censusPlace')->willReturn('Wales'); 386 387 $column = new CensusColumnBornForeignParts($census, '', ''); 388 389 self::assertSame('S', $column->generate($individual, $individual)); 390 } 391 392 /** 393 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 394 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 395 * 396 * @return void 397 */ 398 public function testBornIrelandCensusWales(): void 399 { 400 $individual = $this->createMock(Individual::class); 401 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Dublin, Ireland')); 402 403 $census = $this->createMock(CensusInterface::class); 404 $census->method('censusPlace')->willReturn('Wales'); 405 406 $column = new CensusColumnBornForeignParts($census, '', ''); 407 408 self::assertSame('I', $column->generate($individual, $individual)); 409 } 410 411 /** 412 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 413 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 414 * 415 * @return void 416 */ 417 public function testBornForeignCensusWales(): void 418 { 419 $individual = $this->createMock(Individual::class); 420 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('Elbonia')); 421 422 $census = $this->createMock(CensusInterface::class); 423 $census->method('censusPlace')->willReturn('Wales'); 424 425 $column = new CensusColumnBornForeignParts($census, '', ''); 426 427 self::assertSame('F', $column->generate($individual, $individual)); 428 } 429 430 /** 431 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 432 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 433 * 434 * @return void 435 */ 436 public function testBornNowhereCensusEngland(): void 437 { 438 $individual = $this->createMock(Individual::class); 439 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('')); 440 441 $census = $this->createMock(CensusInterface::class); 442 $census->method('censusPlace')->willReturn('England'); 443 444 $column = new CensusColumnBornForeignParts($census, '', ''); 445 446 self::assertSame('', $column->generate($individual, $individual)); 447 } 448 449 /** 450 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 451 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 452 * 453 * @return void 454 */ 455 public function testBornNowhereCensusWales(): void 456 { 457 $individual = $this->createMock(Individual::class); 458 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('')); 459 460 $census = $this->createMock(CensusInterface::class); 461 $census->method('censusPlace')->willReturn('Wales'); 462 463 $column = new CensusColumnBornForeignParts($census, '', ''); 464 465 self::assertSame('', $column->generate($individual, $individual)); 466 } 467 468 /** 469 * @covers \Fisharebest\Webtrees\Census\CensusColumnBornForeignParts 470 * @covers \Fisharebest\Webtrees\Census\AbstractCensusColumn 471 * 472 * @return void 473 */ 474 public function testBornNowhereCensusScotland(): void 475 { 476 $individual = $this->createMock(Individual::class); 477 $individual->method('getBirthPlace')->willReturn($this->getPlaceMock('')); 478 479 $census = $this->createMock(CensusInterface::class); 480 $census->method('censusPlace')->willReturn('Scotland'); 481 482 $column = new CensusColumnBornForeignParts($census, '', ''); 483 484 self::assertSame('', $column->generate($individual, $individual)); 485 } 486} 487