diff options
| author | 2022-10-20 17:42:47 -0400 | |
|---|---|---|
| committer | 2022-10-20 23:42:47 +0200 | |
| commit | 1f4e347cae51667e7cf5772aef55d274a39c8023 (patch) | |
| tree | 86ba1032c30b581223a7131764d8384f4b566d88 /tests/cli/i18n/I18nValueTest.php | |
| parent | d4181e098d93379c21251bd94d1397e16e56218a (diff) | |
Add tests on i18n classes (#4756)
Diffstat (limited to 'tests/cli/i18n/I18nValueTest.php')
| -rw-r--r-- | tests/cli/i18n/I18nValueTest.php | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/tests/cli/i18n/I18nValueTest.php b/tests/cli/i18n/I18nValueTest.php new file mode 100644 index 000000000..cabc8e072 --- /dev/null +++ b/tests/cli/i18n/I18nValueTest.php @@ -0,0 +1,83 @@ +<?php + +require_once __DIR__ . '/../../../cli/i18n/I18nValue.php'; + +class I18nValueTest extends PHPUnit\Framework\TestCase { + public function testConstructorWithoutState() { + $value = new I18nValue('some value'); + $this->assertEquals('some value', $value->getValue()); + $this->assertFalse($value->isIgnore()); + $this->assertFalse($value->isTodo()); + } + + public function testConstructorWithUnknownState() { + $value = new I18nValue('some value -> unknown'); + $this->assertEquals('some value', $value->getValue()); + $this->assertFalse($value->isIgnore()); + $this->assertFalse($value->isTodo()); + } + + public function testConstructorWithTodoState() { + $value = new I18nValue('some value -> todo'); + $this->assertEquals('some value', $value->getValue()); + $this->assertFalse($value->isIgnore()); + $this->assertTrue($value->isTodo()); + } + + public function testConstructorWithIgnoreState() { + $value = new I18nValue('some value -> ignore'); + $this->assertEquals('some value', $value->getValue()); + $this->assertTrue($value->isIgnore()); + $this->assertFalse($value->isTodo()); + } + + public function testClone() { + $value = new I18nValue('some value'); + $clonedValue = clone $value; + $this->assertEquals('some value', $value->getValue()); + $this->assertEquals('some value', $clonedValue->getValue()); + $this->assertFalse($value->isIgnore()); + $this->assertFalse($clonedValue->isIgnore()); + $this->assertFalse($value->isTodo()); + $this->assertTrue($clonedValue->isTodo()); + } + + public function testEqualWhenValueIsIdentical() { + $value = new I18nValue('some value'); + $clonedValue = clone $value; + $this->assertTrue($value->equal($clonedValue)); + $this->assertTrue($clonedValue->equal($value)); + } + + public function testEqualWhenValueIsDifferent() { + $value = new I18nValue('some value'); + $otherValue = new I18nValue('some other value'); + $this->assertFalse($value->equal($otherValue)); + $this->assertFalse($otherValue->equal($value)); + } + + public function testStates() { + $reflectionProperty = new ReflectionProperty(I18nValue::class, 'state'); + $reflectionProperty->setAccessible(true); + + $value = new I18nValue('some value'); + $this->assertNull($reflectionProperty->getValue($value)); + $value->markAsDirty(); + $this->assertEquals('dirty', $reflectionProperty->getValue($value)); + $value->unmarkAsIgnore(); + $this->assertEquals('dirty', $reflectionProperty->getValue($value)); + $value->markAsIgnore(); + $this->assertEquals('ignore', $reflectionProperty->getValue($value)); + $value->unmarkAsIgnore(); + $this->assertNull($reflectionProperty->getValue($value)); + $value->markAsTodo(); + $this->assertEquals('todo', $reflectionProperty->getValue($value)); + } + + public function testToString() { + $value = new I18nValue('some value'); + $this->assertEquals('some value', $value->__toString()); + $value->markAsTodo(); + $this->assertEquals('some value -> todo', $value->__toString()); + } +} |
