Bonjour,
je cherche depus pas mal de jours commet je peux une methode en symfony qui fait appel a une methode static. Est ce que vous pouvez m aider svp.

Ma function se trouve dans un service et elle verifie si tous les tickets appartenant a un voucher ont ete selectionner.

public function doWeHaveAllTicketsOfOneVoucher($ticketIDs)
{
$allVouchers = [];
foreach ($ticketIDs as $ticketID) {
$ticketVoucher = \voucher::getVoucherByPartnerTicketId($ticketID);
$allVouchers[$ticketVoucher->id] = $ticketVoucher;
}

    foreach ($allVouchers as $voucher) {
        $dischargeparticipants = \dischargeparticipant::getDischargeParticipantsByVoucher($voucher);

        foreach ($dischargeparticipants as $participant) {
            $partnerTicket = \partnerticket::getByID($participant->ticket->extID);
            if (!in_array($partnerTicket->id, $ticketIDs)) {

                return false;
            }
        }

       Functione recois un array avec ticketsID  [tickeid1, ticketid2, ticketid3] (tickets selectionne). Ensuite pour chaque ticketsid, elle cherche dans  DB voucher \voucher::getVoucherByPartnerTicketId($ticketID); et puis pour chaque voucher je prends tous les tickets et a la fin je test si chaque ticket est contenut dans la tableau donne en parametre:
       Je voudrais pouvoir dans mes test controler les valeurs de retour de ces trois function static. Est ce que vous avez une idee comment je peux trouver une solution. Ce un vieux code et on a pas des entites et repository, on utilise ces function static pour recuperer les info de la base de donne et si je pouvais controller les valeur de retour de ces function static, je pourrai obtenir une sorte de fixtures.

       Merci bcp pour votre aide.

3 réponses


Je comprend pas vraiment ta demande, peux tu reformuler ?

Est-ce qu'il y a une possibilite de controler la valeur de retour d'une methode static en faisant les tests unitaire ?
En gros je voudrais creer un Mock et j ai besoin de faire un will (Returnvalue) sur une methode static.

Quelques choses comme ça ?

$class::staticExpects($this->any())
      ->method('helper')
      ->will($this->returnValue('bar'));