Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
83.33% covered (warning)
83.33%
5 / 6
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
OnlyDraftOrders
83.33% covered (warning)
83.33%
5 / 6
0.00% covered (danger)
0.00%
0 / 1
3.04
0.00% covered (danger)
0.00%
0 / 1
 applies
83.33% covered (warning)
83.33%
5 / 6
0.00% covered (danger)
0.00%
0 / 1
3.04
1<?php
2namespace Apie\IntegrationTests\Apie\TypeDemo\Rules;
3
4use Apie\Core\Attributes\ApieContextAttribute;
5use Apie\Core\Context\ApieContext;
6use Apie\Core\ContextConstants;
7use Apie\IntegrationTests\Apie\TypeDemo\Enums\OrderStatus;
8use Apie\IntegrationTests\Apie\TypeDemo\Resources\Order;
9use Attribute;
10
11#[Attribute(Attribute::TARGET_CLASS)]
12class OnlyDraftOrders implements ApieContextAttribute
13{
14    public function applies(ApieContext $context): bool
15    {
16        $resource = $context->getContext(ContextConstants::RESOURCE, false);
17        if (!$resource) {
18            return true; // resource is not loaded yet
19        }
20        if ($resource instanceof Order) {
21            return $resource->getOrderStatus() === OrderStatus::DRAFT;
22        }
23        return false;
24    }
25}