mirror of
https://github.com/SkillDisplay/PHPToolKit.git
synced 2024-11-14 13:26:08 +01:00
Merge pull request #5 from DanielSiepmann/bugfix/do-not-cache-skills-across-sets
Prevent skill sets from sharing their skills
This commit is contained in:
commit
53f3e75dc2
2 changed files with 21 additions and 6 deletions
|
@ -30,6 +30,11 @@ class SkillSet
|
|||
*/
|
||||
private $data;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
private $skills = [];
|
||||
|
||||
private function __construct(array $data)
|
||||
{
|
||||
$this->data = $data;
|
||||
|
@ -55,17 +60,15 @@ class SkillSet
|
|||
*/
|
||||
public function getSkills(): array
|
||||
{
|
||||
static $skills = [];
|
||||
|
||||
if ($skills !== []) {
|
||||
return $skills;
|
||||
if ($this->skills !== []) {
|
||||
return $this->skills;
|
||||
}
|
||||
|
||||
foreach ($this->data['skills'] as $skill) {
|
||||
$skills[] = Skill::createFromJson(json_encode($skill));
|
||||
$this->skills[] = Skill::createFromJson(json_encode($skill));
|
||||
}
|
||||
|
||||
return $skills;
|
||||
return $this->skills;
|
||||
}
|
||||
|
||||
public function toArray(): array
|
||||
|
|
|
@ -101,6 +101,18 @@ class SkillSetTest extends TestCase
|
|||
static::assertSame($skillsFirstCall, $skillsSecondCall);
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
public function twoDifferentInstancesProvideTheirOwnSkills()
|
||||
{
|
||||
$subject1 = SkillSet::createFromJson('{"skills":[{"uid":90,"title":"Example title 1"},{"goals":"<p>Example goals</p>","uid":91,"title":"Example title 2"}]}');
|
||||
$subject2 = SkillSet::createFromJson('{"skills":[{"uid":80,"title":"Example title 10"},{"goals":"<p>Example goals</p>","uid":81,"title":"Example title 11"}]}');
|
||||
|
||||
static::assertSame(90, $subject1->getSkills()[0]->getId());
|
||||
static::assertSame(80, $subject2->getSkills()[0]->getId());
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue