public function testGetSites()
{
$memberships_data = [(object) ['id' => '1', 'site' => (object) ['id' => 'site1', 'other' => 'abc']], (object) ['id' => '2', 'site' => (object) ['id' => 'site2', 'other' => 'cdf']]];
$memberships = [];
foreach ($memberships_data as $membership_data) {
$membership = $this->getMockBuilder(UserSiteMembership::class)->disableOriginalConstructor()->getMock();
$site = $this->getMockBuilder(Site::class)->disableOriginalConstructor()->getMock();
$site->method('get')->with('id')->willReturn($membership_data->site->id);
$membership->method('getSite')->willReturn($site);
$memberships[] = $membership;
$sites[$membership_data->site->id] = $site;
}
$sitememberships = $this->getMockBuilder(UserSiteMemberships::class)->disableOriginalConstructor()->getMock();
$sitememberships->expects($this->once())->method('all')->willReturn($memberships);
$container = $this->getMockBuilder(Container::class)->disableOriginalConstructor()->getMock();
$container->expects($this->once())->method('get')->with(UserSiteMemberships::class, [['user' => $this->user]])->willReturn($sitememberships);
$this->user->setContainer($container);
$this->assertEquals($sites, $this->user->getSites());
}