From 1f4e347cae51667e7cf5772aef55d274a39c8023 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Thu, 20 Oct 2022 17:42:47 -0400 Subject: Add tests on i18n classes (#4756) --- tests/cli/i18n/I18nValueTest.php | 83 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 tests/cli/i18n/I18nValueTest.php (limited to 'tests/cli/i18n/I18nValueTest.php') 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 @@ +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()); + } +} -- cgit v1.2.3