public function testAddUserShouldSetUserOwningBusinessUnitIdEvenIfItIsNull()
 {
     $tree = new OwnerTree();
     $tree->addUser('user', null);
     $this->assertNull($tree->getUserBusinessUnitId('user'));
 }
 /**
  * @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));
 }