public function test_getNumUsableCustomVariables_ShouldReturnMinVariables_IfOneTableHasLessEntriesThanOthers()
{
$this->assertEquals(5, CustomVariables::getNumUsableCustomVariables());
$scopes = Model::getScopes();
// removing custom vars step by step... as soon as one custom var is removed,
// it should return the min count of available variables
for ($i = 4; $i != -1; $i--) {
foreach ($scopes as $scope) {
$this->dropCustomVar($scope);
$this->assertSame($i, CustomVariables::getNumUsableCustomVariables());
}
}
$this->assertEquals(0, CustomVariables::getNumUsableCustomVariables());
// add custom var, only once all custom vars are written it should write return a higher custom var number
for ($i = 1; $i != 7; $i++) {
foreach ($scopes as $index => $scope) {
$isLastIndex = $index === count($scopes) - 1;
$this->addCustomVar($scope);
if ($isLastIndex) {
$this->assertSame($i, CustomVariables::getNumUsableCustomVariables());
// all scopes have been added, it should consider all custom var counts
} else {
$this->assertSame($i - 1, CustomVariables::getNumUsableCustomVariables());
// at least one scope is not added and should therefore return the old custom var count until all
// tables have been updated
}
}
}
$this->assertEquals(6, CustomVariables::getNumUsableCustomVariables());
}