Passed
Push — master ( de9f16...6836c0 )
by Aleksandr
02:35
created

TestingProductClass   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 42
rs 10
c 0
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getContext() 0 4 1
B methodRules() 0 24 1
A getResultCreateModel1c() 0 6 1
1
<?php
2
3
4
namespace carono\exchange1c\models;
5
6
use carono\exchange1c\interfaces\ProductInterface;
7
8
/**
9
 * Class TestingProductClass
10
 *
11
 * @package carono\exchange1c\models
12
 * @method static ProductInterface getPropertyClass()
13
 */
14
class TestingProductClass extends TestingClass
15
{
16
    protected static $property = 'productClass';
17
18
    public static function getContext()
19
    {
20
        $class = self::getPropertyClass();
21
        return call_user_func_array("$class::createModel1c", self::getParams(['cml.catalog.products.0']));
22
    }
23
24
    public function getResultCreateModel1c()
25
    {
26
        $params = self::getParams(['cml.catalog.products.0']);
27
        self::getMethodResult('createModel1c', ['cml.catalog.products.0']);
28
        $class = self::getPropertyClass();
29
        return $class::findOne([$class::getIdFieldName1c() => $params[0]->id]);
30
    }
31
32
    public static function methodRules()
33
    {
34
        return [
35
            'getIdFieldName1c' => [
36
                'return' => 'string',
37
                'auto' => true
38
            ],
39
            'createModel1c' => [
40
                'return' => 'interface',
41
                'value' => '\carono\exchange1c\interfaces\ProductInterface',
42
                'params' => ['cml.catalog.products.0']
43
            ],
44
            'getOffer1c' => [
45
                'return' => 'interface',
46
                'value' => '\carono\exchange1c\interfaces\OfferInterface',
47
                'params' => ['cml.offerPackage.offers.0']
48
            ],
49
            'setGroup1c' => [
50
                'return' => '',
51
                'params' => ['cml.catalog.products.0.group']
52
            ],
53
            'getGroup1c' => [
54
                'return' => 'interface',
55
                'value' => '\carono\exchange1c\interfaces\GroupInterface'
56
            ]
57
        ];
58
    }
59
}