To improve readability, restore coding standards using ecs

This commit is contained in:
Sam Burns 2024-01-24 16:28:13 +00:00
parent b2bac6c2a9
commit ece62c0dce
13 changed files with 37 additions and 36 deletions

View File

@ -11,11 +11,14 @@ class BackstagePassItem implements GildedRoseItem
{ {
public const NAME = 'Backstage passes to a TAFKAL80ETC concert'; public const NAME = 'Backstage passes to a TAFKAL80ETC concert';
public function __construct(private Item $item) {} public function __construct(
private Item $item
) {
}
public function ageByOneDay(): void public function ageByOneDay(): void
{ {
$this->item->sellIn -= 1; --$this->item->sellIn;
$this->item->quality = min(50, $this->getNewQuality($this->item->quality, $this->item->sellIn)); $this->item->quality = min(50, $this->getNewQuality($this->item->quality, $this->item->sellIn));
} }

View File

@ -11,11 +11,14 @@ class BrieItem implements GildedRoseItem
{ {
public const NAME = 'Aged Brie'; public const NAME = 'Aged Brie';
public function __construct(private Item $item) {} public function __construct(
private Item $item
) {
}
public function ageByOneDay(): void public function ageByOneDay(): void
{ {
$this->item->sellIn -= 1; --$this->item->sellIn;
$this->item->quality = min(50, $this->getNewQuality($this->item->quality, $this->item->sellIn)); $this->item->quality = min(50, $this->getNewQuality($this->item->quality, $this->item->sellIn));
} }

View File

@ -11,11 +11,14 @@ class ConjuredItem implements GildedRoseItem
{ {
public const NAME = 'Conjured Mana Cake'; public const NAME = 'Conjured Mana Cake';
public function __construct(private Item $item) {} public function __construct(
private Item $item
) {
}
public function ageByOneDay(): void public function ageByOneDay(): void
{ {
$this->item->sellIn -= 1; --$this->item->sellIn;
$this->item->quality = max(0, $this->getNewQuality($this->item->quality, $this->item->sellIn)); $this->item->quality = max(0, $this->getNewQuality($this->item->quality, $this->item->sellIn));
} }

View File

@ -9,11 +9,14 @@ use GildedRose\Item;
class DefaultItem implements GildedRoseItem class DefaultItem implements GildedRoseItem
{ {
public function __construct(private Item $item) {} public function __construct(
private Item $item
) {
}
public function ageByOneDay(): void public function ageByOneDay(): void
{ {
$this->item->sellIn -= 1; --$this->item->sellIn;
$this->item->quality = max(0, $this->getNewQuality($this->item->quality, $this->item->sellIn)); $this->item->quality = max(0, $this->getNewQuality($this->item->quality, $this->item->sellIn));
} }

View File

@ -11,7 +11,10 @@ class SulfurasItem implements GildedRoseItem
{ {
public const NAME = 'Sulfuras, Hand of Ragnaros'; public const NAME = 'Sulfuras, Hand of Ragnaros';
public function __construct(private Item $item) {} public function __construct(
private Item $item
) {
}
public function ageByOneDay(): void public function ageByOneDay(): void
{ {

View File

@ -4,11 +4,11 @@ declare(strict_types=1);
namespace GildedRose; namespace GildedRose;
use GildedRose\GildedRoseItem\BrieItem;
use GildedRose\GildedRoseItem\BackstagePassItem; use GildedRose\GildedRoseItem\BackstagePassItem;
use GildedRose\GildedRoseItem\BrieItem;
use GildedRose\GildedRoseItem\ConjuredItem; use GildedRose\GildedRoseItem\ConjuredItem;
use GildedRose\GildedRoseItem\SulfurasItem;
use GildedRose\GildedRoseItem\DefaultItem; use GildedRose\GildedRoseItem\DefaultItem;
use GildedRose\GildedRoseItem\SulfurasItem;
class GildedRoseItemFactory class GildedRoseItemFactory
{ {

View File

@ -1,26 +1,22 @@
<?php <?php
declare(strict_types=1);
namespace BehatTests; namespace BehatTests;
use Behat\Behat\Tester\Exception\PendingException;
use Behat\Behat\Context\Context; use Behat\Behat\Context\Context;
use Behat\Step\Given; use Behat\Step\Given;
use Behat\Step\Then; use Behat\Step\Then;
use Behat\Step\When; use Behat\Step\When;
use GildedRose\Item;
use GildedRose\GildedRose; use GildedRose\GildedRose;
use GildedRose\Item;
use PHPUnit\Framework\Assert; use PHPUnit\Framework\Assert;
class ServiceLevelContext implements Context class ServiceLevelContext implements Context
{ {
private Item $item; private Item $item;
private GildedRose $gildedRose;
private function createItem(string $name, int $initialSellIn, int $initialQuality): void private GildedRose $gildedRose;
{
$this->item = new Item($name, $initialSellIn, $initialQuality);
$this->gildedRose = new GildedRose([$this->item]);
}
#[Then('I should see :expectedOutput')] #[Then('I should see :expectedOutput')]
public function iShouldSee(string $expectedOutput): void public function iShouldSee(string $expectedOutput): void
@ -90,4 +86,10 @@ class ServiceLevelContext implements Context
{ {
$this->createItem('Conjured Mana Cake', $initialSellIn, $initialQuality); $this->createItem('Conjured Mana Cake', $initialSellIn, $initialQuality);
} }
private function createItem(string $name, int $initialSellIn, int $initialQuality): void
{
$this->item = new Item($name, $initialSellIn, $initialQuality);
$this->gildedRose = new GildedRose([$this->item]);
}
} }

View File

@ -4,10 +4,7 @@ declare(strict_types=1);
namespace PhpUnitTests\GildedRoseItem; namespace PhpUnitTests\GildedRoseItem;
use ApprovalTests\Approvals;
use GildedRose\GildedRoseItem;
use GildedRose\GildedRoseItem\BackstagePassItem; use GildedRose\GildedRoseItem\BackstagePassItem;
use GildedRose\GildedRoseItemFactory;
use GildedRose\Item; use GildedRose\Item;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;

View File

@ -4,10 +4,7 @@ declare(strict_types=1);
namespace PhpUnitTests\GildedRoseItem; namespace PhpUnitTests\GildedRoseItem;
use ApprovalTests\Approvals;
use GildedRose\GildedRoseItem;
use GildedRose\GildedRoseItem\BrieItem; use GildedRose\GildedRoseItem\BrieItem;
use GildedRose\GildedRoseItemFactory;
use GildedRose\Item; use GildedRose\Item;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;

View File

@ -4,10 +4,7 @@ declare(strict_types=1);
namespace PhpUnitTests\GildedRoseItem; namespace PhpUnitTests\GildedRoseItem;
use ApprovalTests\Approvals;
use GildedRose\GildedRoseItem;
use GildedRose\GildedRoseItem\ConjuredItem; use GildedRose\GildedRoseItem\ConjuredItem;
use GildedRose\GildedRoseItemFactory;
use GildedRose\Item; use GildedRose\Item;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;

View File

@ -4,10 +4,7 @@ declare(strict_types=1);
namespace PhpUnitTests\GildedRoseItem; namespace PhpUnitTests\GildedRoseItem;
use ApprovalTests\Approvals;
use GildedRose\GildedRoseItem;
use GildedRose\GildedRoseItem\DefaultItem; use GildedRose\GildedRoseItem\DefaultItem;
use GildedRose\GildedRoseItemFactory;
use GildedRose\Item; use GildedRose\Item;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;

View File

@ -4,10 +4,7 @@ declare(strict_types=1);
namespace PhpUnitTests\GildedRoseItem; namespace PhpUnitTests\GildedRoseItem;
use ApprovalTests\Approvals;
use GildedRose\GildedRoseItem;
use GildedRose\GildedRoseItem\SulfurasItem; use GildedRose\GildedRoseItem\SulfurasItem;
use GildedRose\GildedRoseItemFactory;
use GildedRose\Item; use GildedRose\Item;
use PHPUnit\Framework\TestCase; use PHPUnit\Framework\TestCase;

View File

@ -4,10 +4,9 @@ declare(strict_types=1);
namespace PhpUnitTests; namespace PhpUnitTests;
use ApprovalTests\Approvals;
use GildedRose\GildedRoseItem; use GildedRose\GildedRoseItem;
use GildedRose\GildedRoseItem\BrieItem;
use GildedRose\GildedRoseItem\BackstagePassItem; use GildedRose\GildedRoseItem\BackstagePassItem;
use GildedRose\GildedRoseItem\BrieItem;
use GildedRose\GildedRoseItem\ConjuredItem; use GildedRose\GildedRoseItem\ConjuredItem;
use GildedRose\GildedRoseItem\DefaultItem; use GildedRose\GildedRoseItem\DefaultItem;
use GildedRose\GildedRoseItem\SulfurasItem; use GildedRose\GildedRoseItem\SulfurasItem;