mscharley/colourist

View on GitHub
tests/RgbTest.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

use Colourist\Tests\ColourTestCase;

class RgbTest extends ColourTestCase
{
  protected function classToTest()
  {
    return "\\Colourist\\RGB";
  }

  protected function properties()
  {
    return ['red', 'green', 'blue'];
  }

  public function testRounding()
  {
    /** @var \Colourist\RGB $colour */
    $colour = $this->newTestedClass(10.5, 20.3, 29.7);
    $this->assertSame(10, $colour->red());
    $this->assertSame(20, $colour->green());
    $this->assertSame(30, $colour->blue());
  }

  public function testToHex()
  {
    $colour = $this->newTestedClass(10, 20, 30);
    $this->assertSame('#0A141E', $colour->toHex());
  }

  /**
   * @expectedException \Respect\Validation\Exceptions\AllOfException
   */
  public function testInvalidRedUnderBounds()
  {
    $this->newTestedClass(-1, 20, 30);
  }

  /**
   * @expectedException \Respect\Validation\Exceptions\AllOfException
   */
  public function testInvalidRedOverBounds()
  {
    $this->newTestedClass(256, 20, 30);
  }

  /**
   * @expectedException \Respect\Validation\Exceptions\AllOfException
   */
  public function testInvalidGreenUnderBounds()
  {
    $this->newTestedClass(10, -1, 30);
  }

  /**
   * @expectedException \Respect\Validation\Exceptions\AllOfException
   */
  public function testInvalidGreenOverBounds()
  {
    $this->newTestedClass(10, 256, 30);
  }

  /**
   * @expectedException \Respect\Validation\Exceptions\AllOfException
   */
  public function testInvalidBlueUnderBounds()
  {
    $this->newTestedClass(10, 20, -1);
  }

  /**
   * @expectedException \Respect\Validation\Exceptions\AllOfException
   */
  public function testInvalidBlueOverBounds()
  {
    $this->newTestedClass(10, 20, 256);
  }
}