mirror of
https://github.com/SkillDisplay/PHPToolKit.git
synced 2024-11-14 21:26:09 +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;
|
private $data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
private $skills = [];
|
||||||
|
|
||||||
private function __construct(array $data)
|
private function __construct(array $data)
|
||||||
{
|
{
|
||||||
$this->data = $data;
|
$this->data = $data;
|
||||||
|
@ -55,17 +60,15 @@ class SkillSet
|
||||||
*/
|
*/
|
||||||
public function getSkills(): array
|
public function getSkills(): array
|
||||||
{
|
{
|
||||||
static $skills = [];
|
if ($this->skills !== []) {
|
||||||
|
return $this->skills;
|
||||||
if ($skills !== []) {
|
|
||||||
return $skills;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($this->data['skills'] as $skill) {
|
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
|
public function toArray(): array
|
||||||
|
|
|
@ -101,6 +101,18 @@ class SkillSetTest extends TestCase
|
||||||
static::assertSame($skillsFirstCall, $skillsSecondCall);
|
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
|
* @test
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue