for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace StraTDeS\VO\Tests\Single;
use StraTDeS\VO\Single\Gender;
use PHPUnit\Framework\TestCase;
class GenderTest extends TestCase
{
public function testGivenAValidGenderAValidVOIsReturned(): void
// Arrange
$gender = Gender::MALE;
// Act
$genderVO = Gender::fromValue($gender);
// Assert
$this->assertInstanceOf(Gender::class, $genderVO);
$this->assertEquals($gender, $genderVO->value());
}
public function testGivenAnInvalidGenderAnExceptionIsThrown(): void
$this->expectException(\InvalidArgumentException::class);
$this->expectExceptionMessage("Tortoise is not a valid gender");
$gender = "Tortoise";
Gender::fromValue($gender);
public function testGivenTwoEqualGendersEqualReturnsTrue(): void
$gender1 = Gender::fromValue(Gender::MALE);
$gender2 = Gender::fromValue(Gender::MALE);
$equal = $gender1->equal($gender2);
$this->assertTrue($equal);
public function testGivenTwoNotEqualGendersEqualReturnsFalse(): void
$gender2 = Gender::fromValue(Gender::FEMALE);
$this->assertFalse($equal);