Pantheon\Terminus\UnitTests\Models\UserTest::testGetSites PHP Method

testGetSites() public method

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