/** * @dataProvider addBusinessUnitRelationProvider */ public function testAddBusinessUnitRelation($src, $expected) { $tree = new OwnerTree(); foreach ($src as $item) { $tree->addBusinessUnitRelation($item[0], $item[1]); } foreach ($expected as $buId => $sBuIds) { $this->assertEquals($sBuIds, $tree->getSubordinateBusinessUnitIds($buId), sprintf('Failed for %s', $buId)); } }
/** * @param OwnerTree $tree */ protected function assertTestData(OwnerTree $tree) { foreach ([self::MAIN_CUSTOMER_ID, self::SECOND_CUSTOMER_ID, self::CHILD_CUSTOMER_ID] as $customerId) { $this->assertEquals(self::ORGANIZATION_ID, $tree->getBusinessUnitOrganizationId($customerId)); } $this->assertEquals([self::CHILD_CUSTOMER_ID], $tree->getSubordinateBusinessUnitIds(self::MAIN_CUSTOMER_ID)); $this->assertEmpty($tree->getSubordinateBusinessUnitIds(self::SECOND_CUSTOMER_ID)); $this->assertEmpty($tree->getSubordinateBusinessUnitIds(self::CHILD_CUSTOMER_ID)); foreach ([self::FIRST_USER_ID, self::SECOND_USER_ID, self::THIRD_USER_ID] as $userId) { $this->assertEquals(self::ORGANIZATION_ID, $tree->getUserOrganizationId($userId)); } $this->assertEquals(self::MAIN_CUSTOMER_ID, $tree->getUserBusinessUnitId(self::FIRST_USER_ID)); $this->assertEquals(self::SECOND_CUSTOMER_ID, $tree->getUserBusinessUnitId(self::SECOND_USER_ID)); $this->assertEquals(self::CHILD_CUSTOMER_ID, $tree->getUserBusinessUnitId(self::THIRD_USER_ID)); $this->assertEquals([self::MAIN_CUSTOMER_ID], $tree->getUserBusinessUnitIds(self::FIRST_USER_ID, self::ORGANIZATION_ID)); $this->assertEquals([self::SECOND_CUSTOMER_ID], $tree->getUserBusinessUnitIds(self::SECOND_USER_ID, self::ORGANIZATION_ID)); $this->assertEquals([self::CHILD_CUSTOMER_ID], $tree->getUserBusinessUnitIds(self::THIRD_USER_ID, self::ORGANIZATION_ID)); $undefinedOrganization = 42; $this->assertEmpty($tree->getUserBusinessUnitIds(self::FIRST_USER_ID, $undefinedOrganization)); $this->assertEmpty($tree->getUserBusinessUnitIds(self::SECOND_USER_ID, $undefinedOrganization)); $this->assertEmpty($tree->getUserBusinessUnitIds(self::THIRD_USER_ID, $undefinedOrganization)); }