mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-02-15 06:21:29 +00:00
To improve readability, restore coding standards using ecs
This commit is contained in:
parent
b2bac6c2a9
commit
ece62c0dce
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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
|
||||||
{
|
{
|
||||||
|
|||||||
@ -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]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|
||||||
|
|||||||
@ -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;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user