aboutsummaryrefslogtreecommitdiff
path: root/tests/cli/i18n/I18nValueTest.php
diff options
context:
space:
mode:
authorGravatar Alexis Degrugillier <aledeg@users.noreply.github.com> 2022-10-20 17:42:47 -0400
committerGravatar GitHub <noreply@github.com> 2022-10-20 23:42:47 +0200
commit1f4e347cae51667e7cf5772aef55d274a39c8023 (patch)
tree86ba1032c30b581223a7131764d8384f4b566d88 /tests/cli/i18n/I18nValueTest.php
parentd4181e098d93379c21251bd94d1397e16e56218a (diff)
Add tests on i18n classes (#4756)
Diffstat (limited to 'tests/cli/i18n/I18nValueTest.php')
-rw-r--r--tests/cli/i18n/I18nValueTest.php83
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());
+ }
+}