DataSeriesValuesTest.php 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. <?php
  2. namespace PhpOffice\PhpSpreadsheetTests\Chart;
  3. use PhpOffice\PhpSpreadsheet\Chart\DataSeriesValues;
  4. use PhpOffice\PhpSpreadsheet\Chart\Properties;
  5. use PhpOffice\PhpSpreadsheet\Exception;
  6. use PHPUnit\Framework\TestCase;
  7. class DataSeriesValuesTest extends TestCase
  8. {
  9. public function testSetDataType(): void
  10. {
  11. $dataTypeValues = [
  12. 'Number',
  13. 'String',
  14. ];
  15. $testInstance = new DataSeriesValues();
  16. foreach ($dataTypeValues as $dataTypeValue) {
  17. $result = $testInstance->setDataType($dataTypeValue);
  18. self::assertInstanceOf(DataSeriesValues::class, $result);
  19. }
  20. }
  21. public function testSetInvalidDataTypeThrowsException(): void
  22. {
  23. $testInstance = new DataSeriesValues();
  24. try {
  25. $testInstance->setDataType('BOOLEAN');
  26. } catch (Exception $e) {
  27. self::assertEquals($e->getMessage(), 'Invalid datatype for chart data series values');
  28. return;
  29. }
  30. self::fail('An expected exception has not been raised.');
  31. }
  32. public function testGetDataType(): void
  33. {
  34. $dataTypeValue = 'String';
  35. $testInstance = new DataSeriesValues();
  36. $testInstance->setDataType($dataTypeValue);
  37. $result = $testInstance->getDataType();
  38. self::assertEquals($dataTypeValue, $result);
  39. }
  40. public function testGetLineWidth(): void
  41. {
  42. $testInstance = new DataSeriesValues();
  43. // default has changed to null from 1 point (12700)
  44. self::assertNull($testInstance->getLineWidth(), 'should have default');
  45. $testInstance->setLineWidth(40000 / Properties::POINTS_WIDTH_MULTIPLIER);
  46. self::assertEquals(40000 / Properties::POINTS_WIDTH_MULTIPLIER, $testInstance->getLineWidth());
  47. $testInstance->setLineWidth(1);
  48. self::assertEquals(12700 / Properties::POINTS_WIDTH_MULTIPLIER, $testInstance->getLineWidth(), 'should enforce minimum width');
  49. }
  50. public function testFillColorCorrectInput(): void
  51. {
  52. $testInstance = new DataSeriesValues();
  53. self::assertEquals($testInstance, $testInstance->setFillColor('00abb8'));
  54. self::assertEquals($testInstance, $testInstance->setFillColor(['00abb8', 'b8292f']));
  55. }
  56. public function testFillColorInvalidInput(): void
  57. {
  58. $testInstance = new DataSeriesValues();
  59. $this->expectException(\Exception::class);
  60. $this->expectExceptionMessage('Invalid hex color for chart series');
  61. $testInstance->setFillColor('WRONG COLOR');
  62. }
  63. public function testFillColorInvalidInputInArray(): void
  64. {
  65. $testInstance = new DataSeriesValues();
  66. $this->expectException(\Exception::class);
  67. $this->expectExceptionMessage('Invalid hex color for chart series (color: "WRONG COLOR")');
  68. $testInstance->setFillColor(['b8292f', 'WRONG COLOR']);
  69. }
  70. }