ЕР
Size: a a a
ЕР
ЕР
DS
BT
ЕР
ЕР
ЕР
BT
BT
SP
public function foo(int $n) {
$this->dependency->doSomething(range(0, $n));
}
$dependency->doSomething([1,2, 3, 4])->shouldBeCalled();
BT
public function foo(int $n) {
$this->dependency->doSomething(range(0, $n));
}
$dependency->doSomething([1,2, 3, 4])->shouldBeCalled();
SP
DS
public function foo(int $n) {
$this->dependency->doSomething(range(0, $n));
}
$dependency->doSomething([1,2, 3, 4])->shouldBeCalled();
DS
SP
class Referal {ну вот например. Простой довольно класс который хранит дерево рефералов. И тебе надо посчитать комиссию и есть ограничение мол только первые 5 уровней дерева
public string $id;
public Referal? $parent;
public static function invitedBy(string $userId, Referal $parent)
{
$referal = new self();
$referal->id = $userId;
$referal->parent = $parent;
return $referal;
}
public function forReferalChain(CalculateFee $feeCalculator): array
{
$chain = [];
$parent = $this->parent;
while($parent && count($chain) < 5) {
$chain[] = $parent->id;
$parent = $parent->parent;
}
return $feeCalculator($chain);
}
}
SP
// precondition (цепочка рефералов на 10 человек например)
$calculateFee(['user-9', 'user-8', 'user-7', 'user-6', 'user-5'])->shouldBeCalled()->willReturn([]);
$referal->forReferalChain($calculateFee);
BT
BT
bar
- важно только то, что оно мне вернетЕР
DS
class Referal {ну вот например. Простой довольно класс который хранит дерево рефералов. И тебе надо посчитать комиссию и есть ограничение мол только первые 5 уровней дерева
public string $id;
public Referal? $parent;
public static function invitedBy(string $userId, Referal $parent)
{
$referal = new self();
$referal->id = $userId;
$referal->parent = $parent;
return $referal;
}
public function forReferalChain(CalculateFee $feeCalculator): array
{
$chain = [];
$parent = $this->parent;
while($parent && count($chain) < 5) {
$chain[] = $parent->id;
$parent = $parent->parent;
}
return $feeCalculator($chain);
}
}