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()); }