Release 2.11 (#4580)

This commit is contained in:
Kevin Papst
2024-02-02 13:52:24 +01:00
committed by GitHub
parent a9a32c83ac
commit 49e69d1ae3
55 changed files with 347 additions and 264 deletions

View File

@@ -20,23 +20,15 @@ final class TagFixtures implements TestFixture
/**
* @var string[]
*/
private $tagArray = [];
/**
* @var callable
*/
private $callback;
private array $tagArray = [];
private ?\Closure $callback = null;
/**
* Will be called prior to persisting the object.
*
* @param callable $callback
* @return TagFixtures
*/
public function setCallback(callable $callback): TagFixtures
public function setCallback(\Closure $callback): void
{
$this->callback = $callback;
return $this;
}
/**
@@ -47,15 +39,17 @@ final class TagFixtures implements TestFixture
return $this->tagArray;
}
public function addTagNameToCreate(string $name): void
{
$this->tagArray[] = $name;
}
/**
* @param string[] $tagArray
* @return TagFixtures
*/
public function setTagArray(array $tagArray): TagFixtures
public function setTagArray(array $tagArray): void
{
$this->tagArray = $tagArray;
return $this;
}
public function importAmount(int $amount): void
@@ -68,7 +62,6 @@ final class TagFixtures implements TestFixture
}
/**
* @param ObjectManager $manager
* @return Tag[]
*/
public function load(ObjectManager $manager): array

View File

@@ -24,71 +24,32 @@ use Faker\Factory;
*/
final class TimesheetFixtures implements TestFixture
{
/**
* @var User
*/
private $user;
/**
* @var int
*/
private $amount = 0;
/**
* @var int
*/
private $running = 0;
private int $running = 0;
/**
* @var Activity[]
*/
private $activities = [];
private array $activities = [];
/**
* @var Project[]
*/
private $projects = [];
/**
* @var \DateTime
*/
private $startDate;
/**
* @var \DateTime
*/
private $fixedStartDate;
/**
* @var bool
*/
private $fixedRate = false;
private array $projects = [];
private ?\DateTime $startDate = null;
private ?\DateTime $fixedStartDate = null;
private bool $fixedRate = false;
/**
* @var callable
*/
private $callback;
private bool $hourlyRate = false;
private bool $allowEmptyDescriptions = true;
private bool $exported = false;
/**
* @var bool
* @var array<string|Tag>
*/
private $hourlyRate = false;
/**
* @var bool
*/
private $allowEmptyDescriptions = true;
/**
* @var bool
*/
private $exported = false;
/**
* @var bool
*/
private $useTags = false;
/**
* @var array
*/
private $tags = [];
private array $tags = [];
public function __construct(?User $user = null, ?int $amount = null)
public function __construct(private ?User $user = null, private int $amount = 0)
{
if ($user !== null) {
$this->setUser($user);
}
if ($amount !== null) {
$this->setAmount($amount);
}
}
public function setAllowEmptyDescriptions(bool $allowEmptyDescriptions): TimesheetFixtures
@@ -183,13 +144,6 @@ final class TimesheetFixtures implements TestFixture
return $this;
}
public function setUseTags(bool $useTags): TimesheetFixtures
{
$this->useTags = $useTags;
return $this;
}
/**
* @param string[] $tags
* @return TimesheetFixtures
@@ -234,14 +188,19 @@ final class TimesheetFixtures implements TestFixture
$faker = Factory::create();
$users = [$this->user];
if ($this->user === null) {
$users = [];
if ($this->user !== null) {
$users[] = $this->user;
} else {
$users = $this->getAllUsers($manager);
}
$tags = $this->getTagObjectList();
foreach ($tags as $tag) {
$manager->persist($tag);
if ($tag->getId() === null) {
$manager->persist($tag);
}
}
$manager->flush();
@@ -310,21 +269,25 @@ final class TimesheetFixtures implements TestFixture
return $created;
}
/**
* @return array<Tag>
*/
private function getTagObjectList(): array
{
if (true === $this->useTags) {
$all = [];
foreach ($this->tags as $tagName) {
$tagObject = new Tag();
$tagObject->setName($tagName);
$all[] = $tagObject;
$all = [];
foreach ($this->tags as $tagName) {
if ($tagName instanceof Tag) {
$all[] = $tagName;
continue;
}
return $all;
$tagObject = new Tag();
$tagObject->setName($tagName);
$all[] = $tagObject;
}
return [];
return $all;
}
private function getDateTime(int $i): \DateTime
@@ -433,9 +396,7 @@ final class TimesheetFixtures implements TestFixture
$entry->setHourlyRate($hourlyRate);
}
if (null !== $this->exported) {
$entry->setExported($this->exported);
}
$entry->setExported($this->exported);
if ($setEndDate) {
$entry->setEnd($end);