1<?php 2 3/** 4 * webtrees: online genealogy 5 * Copyright (C) 2019 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 <http://www.gnu.org/licenses/>. 16 */ 17declare(strict_types=1); 18 19namespace Fisharebest\Webtrees\SurnameTradition; 20 21/** 22 * Test harness for the class SpanishSurnameTradition 23 */ 24class PolishSurnameTraditionTest extends \Fisharebest\Webtrees\TestCase 25{ 26 /** @var SurnameTraditionInterface */ 27 private $surname_tradition; 28 29 /** 30 * Prepare the environment for these tests 31 * 32 * @return void 33 */ 34 protected function setUp(): void 35 { 36 parent::setUp(); 37 38 $this->surname_tradition = new PolishSurnameTradition(); 39 } 40 41 /** 42 * Test whether married surnames are used 43 * 44 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 45 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 46 * 47 * @return void 48 */ 49 public function testMarriedSurnames(): void 50 { 51 $this->assertTrue($this->surname_tradition->hasMarriedNames()); 52 } 53 54 /** 55 * Test whether surnames are used 56 * 57 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 58 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 59 * 60 * @return void 61 */ 62 public function testSurnames(): void 63 { 64 $this->assertTrue($this->surname_tradition->hasSurnames()); 65 } 66 67 /** 68 * Test new son names 69 * 70 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 71 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 72 * 73 * @return void 74 */ 75 public function testNewSonNames(): void 76 { 77 $this->assertSame( 78 [ 79 'NAME' => '/White/', 80 'SURN' => 'White', 81 ], 82 $this->surname_tradition->newChildNames('John /White/', 'Mary /Black/', 'M') 83 ); 84 } 85 86 /** 87 * Test new daughter names 88 * 89 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 90 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 91 * 92 * @return void 93 */ 94 public function testNewDaughterNames(): void 95 { 96 $this->assertSame( 97 [ 98 'NAME' => '/White/', 99 'SURN' => 'White', 100 ], 101 $this->surname_tradition->newChildNames('John /White/', 'Mary /Black/', 'F') 102 ); 103 } 104 105 /** 106 * Test new daughter names 107 * 108 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 109 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 110 * 111 * @return void 112 */ 113 public function testNewDaughterNamesInflected(): void 114 { 115 $this->assertSame( 116 [ 117 'NAME' => '/Whitecka/', 118 'SURN' => 'Whitecki', 119 ], 120 $this->surname_tradition->newChildNames('John /Whitecki/', 'Mary /Black/', 'F') 121 ); 122 $this->assertSame( 123 [ 124 'NAME' => '/Whitedzka/', 125 'SURN' => 'Whitedzki', 126 ], 127 $this->surname_tradition->newChildNames('John /Whitedzki/', 'Mary /Black/', 'F') 128 ); 129 $this->assertSame( 130 [ 131 'NAME' => '/Whiteska/', 132 'SURN' => 'Whiteski', 133 ], 134 $this->surname_tradition->newChildNames('John /Whiteski/', 'Mary /Black/', 'F') 135 ); 136 $this->assertSame( 137 [ 138 'NAME' => '/Whiteżka/', 139 'SURN' => 'Whiteżki', 140 ], 141 $this->surname_tradition->newChildNames('John /Whiteżki/', 'Mary /Black/', 'F') 142 ); 143 } 144 145 /** 146 * Test new child names 147 * 148 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 149 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 150 * 151 * @return void 152 */ 153 public function testNewChildNames(): void 154 { 155 $this->assertSame( 156 [ 157 'NAME' => '/White/', 158 'SURN' => 'White', 159 ], 160 $this->surname_tradition->newChildNames('John /White/', 'Mary /Black/', 'U') 161 ); 162 } 163 164 /** 165 * Test new child names 166 * 167 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 168 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 169 * 170 * @return void 171 */ 172 public function testNewChildNamesWithNoParentsNames(): void 173 { 174 $this->assertSame( 175 ['NAME' => '//'], 176 $this->surname_tradition->newChildNames('', '', 'U') 177 ); 178 } 179 180 /** 181 * Test new father names 182 * 183 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 184 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 185 * 186 * @return void 187 */ 188 public function testNewFatherNames(): void 189 { 190 $this->assertSame( 191 [ 192 'NAME' => '/White/', 193 'SURN' => 'White', 194 ], 195 $this->surname_tradition->newParentNames('John /White/', 'M') 196 ); 197 } 198 199 /** 200 * Test new father names 201 * 202 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 203 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 204 * 205 * @return void 206 */ 207 public function testNewFatherNamesInflected(): void 208 { 209 $this->assertSame( 210 [ 211 'NAME' => '/Whitecki/', 212 'SURN' => 'Whitecki', 213 ], 214 $this->surname_tradition->newParentNames('Mary /Whitecka/', 'M') 215 ); 216 $this->assertSame( 217 [ 218 'NAME' => '/Whitedzki/', 219 'SURN' => 'Whitedzki', 220 ], 221 $this->surname_tradition->newParentNames('Mary /Whitedzka/', 'M') 222 ); 223 $this->assertSame( 224 [ 225 'NAME' => '/Whiteski/', 226 'SURN' => 'Whiteski', 227 ], 228 $this->surname_tradition->newParentNames('Mary /Whiteska/', 'M') 229 ); 230 $this->assertSame( 231 [ 232 'NAME' => '/Whiteżki/', 233 'SURN' => 'Whiteżki', 234 ], 235 $this->surname_tradition->newParentNames('Mary /Whiteżka/', 'M') 236 ); 237 } 238 239 /** 240 * Test new mother names 241 * 242 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 243 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 244 * 245 * @return void 246 */ 247 public function testNewMotherNames(): void 248 { 249 $this->assertSame( 250 ['NAME' => '//'], 251 $this->surname_tradition->newParentNames('John /White/', 'F') 252 ); 253 } 254 255 /** 256 * Test new parent names 257 * 258 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 259 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 260 * 261 * @return void 262 */ 263 public function testNewParentNames(): void 264 { 265 $this->assertSame( 266 ['NAME' => '//'], 267 $this->surname_tradition->newParentNames('John /White/', 'U') 268 ); 269 } 270 271 /** 272 * Test new husband names 273 * 274 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 275 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 276 * 277 * @return void 278 */ 279 public function testNewHusbandNames(): void 280 { 281 $this->assertSame( 282 ['NAME' => '//'], 283 $this->surname_tradition->newSpouseNames('Mary /Black/', 'M') 284 ); 285 } 286 287 /** 288 * Test new wife names 289 * 290 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 291 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 292 * 293 * @return void 294 */ 295 public function testNewWifeNames(): void 296 { 297 $this->assertSame( 298 [ 299 'NAME' => '//', 300 '_MARNM' => '/White/', 301 ], 302 $this->surname_tradition->newSpouseNames('John /White/', 'F') 303 ); 304 } 305 306 /** 307 * Test new spouse names 308 * 309 * @covers \Fisharebest\Webtrees\SurnameTradition\PolishSurnameTradition 310 * @covers \Fisharebest\Webtrees\SurnameTradition\PatrilinealSurnameTradition 311 * 312 * @return void 313 */ 314 public function testNewSpouseNames(): void 315 { 316 $this->assertSame( 317 ['NAME' => '//'], 318 $this->surname_tradition->newSpouseNames('Chris /Green/', 'U') 319 ); 320 } 321} 322