MDNodaHelpers/tests/NodaValidationHelperTest.php

94 lines
3.0 KiB
PHP

<?PHP
/**
* This script contains tests for the validation of single field contents.
*
* @author Joshua Ramon Enslin <joshua@museum-digital.de>
*/
declare(strict_types = 1);
use PHPUnit\Framework\TestCase;
/**
* This script contains tests for the validation of single field contents.
*
* @covers \NodaValidationHelper
*/
final class NodaValidationHelperTest extends TestCase {
/**
* Test that a specific error is thrown if no description for actors is provided.
*
* @small
*
* @return void
*/
public function testActorDescriptionValidationFailsOnEmptyInput():void {
$this->expectException(MDInvalidEmptyInputException::class);
NodaValidationHelper::validateActorDescription("");
}
/**
* Test successfully refusing too short actor descriptions.
*
* @small
*
* @return void
*/
public function testActorDescriptionValidationFailsOnTooShortInput():void {
$this->expectException(MDgenericInvalidInputsException::class);
NodaValidationHelper::validateActorDescription("abc");
}
/**
* Test successfully refusing actor descriptions that have too few distinct characters.
*
* @small
*
* @return void
*/
public function testActorDescriptionValidationFailsOnTooFewDistinctCharacters():void {
$this->expectException(MDgenericInvalidInputsException::class);
NodaValidationHelper::validateActorDescription("aaaaaaaaaaaa");
}
/**
* Test successfully refusing actor descriptions that simply duplicate the actor name.
*
* @small
*
* @return void
*/
public function testActorDescriptionValidationFailsOnDuplicatedActorNames():void {
$this->expectException(MDgenericInvalidInputsException::class);
NodaValidationHelper::validateActorDescription("Richard Lepsius", ["Lepsius, Richard"]);
$this->expectException(MDgenericInvalidInputsException::class);
NodaValidationHelper::validateActorDescription("Richard Lepsius", ["Lepsius", "Richard"]);
$this->expectException(MDgenericInvalidInputsException::class);
NodaValidationHelper::validateActorDescription("Lepsius, Richard", ["Lepsius", "Richard"]);
$this->expectException(MDgenericInvalidInputsException::class);
NodaValidationHelper::validateActorDescription("Richard Lepsius, ", ["Lepsius", "Richard"]);
$this->expectException(MDgenericInvalidInputsException::class);
NodaValidationHelper::validateActorDescription("Helmut Testtest", ["Helmut Testtest", "Helmut Testtest", "Testtest, Helmut", "Helmut", "Testtest"]);
}
/**
* Test that a valid description is accepted.
*
* @small
*
* @return void
*/
public function testActorDescriptionValidationAcceptsValidDescription():void {
NodaValidationHelper::validateActorDescription("Richard Lepsius war ein Forscher", ["Lepsius", "Richard"]);
self::assertTrue(true);
}
}