Optimized SourceMembershipInformation

This commit is contained in:
Kevin Frantz
2018-12-30 17:09:44 +01:00
parent beb6cb3e90
commit e30145d792
4 changed files with 37 additions and 11 deletions

View File

@@ -32,7 +32,7 @@ class SourceMembershipInformationTest extends TestCase
public function testOneDimension(): void
{
$this->source->getMemberRelation()->getMemberships()->add(new TextSource());
$this->source->getMemberRelation()->getMemberships()->add((new TextSource())->getMemberRelation());
$this->assertEquals(1, $this->sourceMembershipInformation->getAllMemberships()->count());
}
@@ -40,18 +40,25 @@ class SourceMembershipInformationTest extends TestCase
{
$source1 = new TextSource();
$source2 = new FirstNameSource();
$source2->getMemberRelation()->setMemberships(new ArrayCollection([$source1]));
$source2->getMemberRelation()->setMemberships(new ArrayCollection([$source1->getMemberRelation()]));
$source3 = new FullPersonNameSource();
$source3->getMemberRelation()->getMemberships()->add($source2);
$this->source->getMemberRelation()->getMemberships()->add($source3);
$source3->getMemberRelation()->getMemberships()->add($source2->getMemberRelation());
$this->source->getMemberRelation()->getMemberships()->add($source3->getMemberRelation());
$this->assertEquals(3, $this->sourceMembershipInformation->getAllMemberships()->count());
}
public function testRecursion(): void
{
$recursiveSource = new UserSource();
$recursiveSource->getMemberRelation()->getMemberships()->add($this->source);
$this->source->getMemberRelation()->getMemberships()->add($recursiveSource);
$recursiveSource->getMemberRelation()->getMemberships()->add($this->source->getMemberRelation());
$this->source->getMemberRelation()->getMemberships()->add($recursiveSource->getMemberRelation());
$this->assertEquals(2, $this->sourceMembershipInformation->getAllMemberships()->count());
}
public function testError(): void
{
$this->expectException(\Error::class);
$this->source->getMemberRelation()->getMemberships()->add($this->createSourceMock());
$this->sourceMembershipInformation->getAllMemberships();
}
}