From 22d2eaf5a3b50ad6ec18157df20d8a0be7618a80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20L=C3=BCcke?= Date: Mon, 1 Mar 2021 16:57:16 +0100 Subject: [PATCH] Erweiterung der Farbmodel-Tests. Dabei wurden mehrfach verwendete Methoden in eine eigene Klasse ausgelagert. --- src/ColorModels/CyanMagentaYellowKey.php | 97 ++++++++++++++ .../ColorModels/AbstractColorModelUnit.php | 36 +++++ .../ColorModels/CyanMagentaYellowKeyTest.php | 124 ++++++++++++++++++ tests/unit/ColorModels/RedGreenBlueTest.php | 26 +--- 4 files changed, 258 insertions(+), 25 deletions(-) create mode 100644 src/ColorModels/CyanMagentaYellowKey.php create mode 100644 tests/unit/ColorModels/AbstractColorModelUnit.php create mode 100644 tests/unit/ColorModels/CyanMagentaYellowKeyTest.php diff --git a/src/ColorModels/CyanMagentaYellowKey.php b/src/ColorModels/CyanMagentaYellowKey.php new file mode 100644 index 0000000..4ec5e1d --- /dev/null +++ b/src/ColorModels/CyanMagentaYellowKey.php @@ -0,0 +1,97 @@ +cyan; + } + + /** + * @param float $cyan + * @return CyanMagentaYellowKey + */ + public function setCyan(float $cyan): CyanMagentaYellowKey + { + $this->checkValue($cyan); + $this->cyan = $cyan; + return $this; + } + + /** + * @return float + */ + public function getMagenta(): float + { + return $this->magenta; + } + + /** + * @param float $magenta + * @return CyanMagentaYellowKey + */ + public function setMagenta(float $magenta): CyanMagentaYellowKey + { + $this->checkValue($magenta); + $this->magenta = $magenta; + return $this; + } + + /** + * @return float + */ + public function getYellow(): float + { + return $this->yellow; + } + + /** + * @param float $yellow + * @return CyanMagentaYellowKey + */ + public function setYellow(float $yellow): CyanMagentaYellowKey + { + $this->checkValue($yellow); + $this->yellow = $yellow; + return $this; + } + + /** + * @return float + */ + public function getKey(): float + { + return $this->key; + } + + /** + * @param float $key + * @return CyanMagentaYellowKey + */ + public function setKey(float $key): CyanMagentaYellowKey + { + $this->checkValue($key); + $this->key = $key; + return $this; + } + +} \ No newline at end of file diff --git a/tests/unit/ColorModels/AbstractColorModelUnit.php b/tests/unit/ColorModels/AbstractColorModelUnit.php new file mode 100644 index 0000000..542b1ff --- /dev/null +++ b/tests/unit/ColorModels/AbstractColorModelUnit.php @@ -0,0 +1,36 @@ + [-0.1], + 'zu gross' => [1.1], + ]; + } + + /** + * @return float[][] + */ + public function validValueProvider(): array + { + return [ + 'niedrigster Wert' => [0.0], + 'mittlerer Wert' => [0.45], + 'maximaler Wert' => [1.0], + ]; + } + +} \ No newline at end of file diff --git a/tests/unit/ColorModels/CyanMagentaYellowKeyTest.php b/tests/unit/ColorModels/CyanMagentaYellowKeyTest.php new file mode 100644 index 0000000..e18129f --- /dev/null +++ b/tests/unit/ColorModels/CyanMagentaYellowKeyTest.php @@ -0,0 +1,124 @@ +assertEquals(0.0, $color->getCyan()); + $this->assertEquals(0.0, $color->getMagenta()); + $this->assertEquals(0.0, $color->getYellow()); + $this->assertEquals(0.0, $color->getKey()); + } + + /** + * @param float $value + * + * @dataProvider validValueProvider + */ + public function testSetCyanWithValidValue(float $value) + { + $color = new CyanMagentaYellowKey(); + + $color->setCyan($value); + $this->assertEquals($value, $color->getCyan()); + } + + /** + * @param float $value + * + * @dataProvider validValueProvider + */ + public function testSetMagentaWithValidValue(float $value) + { + $color = new CyanMagentaYellowKey(); + + $color->setMagenta($value); + $this->assertEquals($value, $color->getMagenta()); + } + + /** + * @param float $value + * + * @dataProvider validValueProvider + */ + public function testSetYellowWithValidValue(float $value) + { + $color = new CyanMagentaYellowKey(); + + $color->setYellow($value); + $this->assertEquals($value, $color->getYellow()); + } + + /** + * @param float $value + * + * @dataProvider validValueProvider + */ + public function testSetKeyWithValidValue(float $value) + { + $color = new CyanMagentaYellowKey(); + + $color->setKey($value); + $this->assertEquals($value, $color->getKey()); + } + + /** + * @param float $value + * + * @dataProvider invalidValueProvider + */ + public function testSetCyanWithInvalidValue(float $value) + { + $color = new CyanMagentaYellowKey(); + + $this->expectException(InvalidArgumentException::class); + $color->setCyan($value); + } + + /** + * @param float $value + * + * @dataProvider invalidValueProvider + */ + public function testSetMagentaWithInvalidValue(float $value) + { + $color = new CyanMagentaYellowKey(); + + $this->expectException(InvalidArgumentException::class); + $color->setMagenta($value); + } + + /** + * @param float $value + * + * @dataProvider invalidValueProvider + */ + public function testSetYellowWithInvalidValue(float $value) + { + $color = new CyanMagentaYellowKey(); + + $this->expectException(InvalidArgumentException::class); + $color->setYellow($value); + } + + /** + * @param float $value + * + * @dataProvider invalidValueProvider + */ + public function testSetKeyWithInvalidValue(float $value) + { + $color = new CyanMagentaYellowKey(); + + $this->expectException(InvalidArgumentException::class); + $color->setKey($value); + } +} diff --git a/tests/unit/ColorModels/RedGreenBlueTest.php b/tests/unit/ColorModels/RedGreenBlueTest.php index b06e964..e754089 100644 --- a/tests/unit/ColorModels/RedGreenBlueTest.php +++ b/tests/unit/ColorModels/RedGreenBlueTest.php @@ -2,11 +2,10 @@ namespace TorstenHettstedtUnitTests\Colors\ColorModels; -use Codeception\Test\Unit; use InvalidArgumentException; use TorstenHettstedt\Colors\ColorModels\RedGreenBlue; -class RedGreenBlueTest extends Unit +class RedGreenBlueTest extends AbstractColorModelUnit { public function testConstruct() @@ -18,29 +17,6 @@ class RedGreenBlueTest extends Unit $this->assertEquals(1.0, $color->getBlue()); } - /** - * @return float[][] - */ - public function invalidValueProvider(): array - { - return [ - 'zu klein' => [-0.1], - 'zu gross' => [1.1], - ]; - } - - /** - * @return float[][] - */ - public function validValueProvider(): array - { - return [ - 'niedrigster Wert' => [0.0], - 'mittlerer Wert' => [0.45], - 'maximaler Wert' => [1.0], - ]; - } - /** * @param float $value *