numberOfTimesCreateCalled++; $id = $this->nextId(); $scheduledNode = new ScheduledNode( id: $id, date: $dto->date, plan: $dto->plan, node: $dto->node, ); $this->existingScheduledNodes[$id] = $scheduledNode; return $scheduledNode; } public function find(int $id): ?ScheduledNode { return array_find( $this->existingScheduledNodes, function (ScheduledNode $scheduledNode) use ($id) { return $scheduledNode->getId() === $id; } ); } public function getNumberOfTimesCreateCalled(): int { return $this->numberOfTimesCreateCalled; } private function nextId(): int { return count($this->existingScheduledNodes); } }