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

testGetSites() public method

public testGetSites ( )
    public function testGetSites()
    {
        $organization = new Organization((object) ['id' => '123']);
        $model_data = ['a' => (object) ['site' => new Site((object) ['id' => 'abc', 'name' => 'Site A']), 'organization_id' => '123', "role" => "team_member"], 'b' => (object) ['site' => new Site((object) ['id' => 'bcd', 'name' => 'Site B']), 'organization_id' => '123', "role" => "team_member"], 'c' => (object) ['site' => new Site((object) ['id' => 'cde', 'name' => 'Site C']), 'organization_id' => '123', "role" => "team_member"]];
        $models = $sites = [];
        foreach ($model_data as $id => $data) {
            $models[$id] = $this->getMockBuilder(OrganizationSiteMembership::class)->disableOriginalConstructor()->getMock();
            $models[$id]->method('getSite')->willReturn($data->site);
            $sites[$data->site->id] = $data->site;
        }
        $org_site_membership = $this->getMockBuilder(OrganizationSiteMemberships::class)->setMethods(['getMembers'])->disableOriginalConstructor()->getMock();
        $org_site_membership->expects($this->any())->method('getMembers')->willReturn($models);
        $container = $this->getMockBuilder(Container::class)->disableOriginalConstructor()->getMock();
        $container->expects($this->once())->method('get')->with(OrganizationSiteMemberships::class, [['organization' => $organization]])->willReturn($org_site_membership);
        $organization->setContainer($container);
        $this->assertEquals($org_site_membership, $organization->getSiteMemberships());
        $this->assertEquals($sites, $organization->getSites());
    }