Completed
Pull Request — master (#132)
by Łukasz
04:54
created

PutVariantBasedConfigurableItemToCart   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 74
Duplicated Lines 100 %

Coupling/Cohesion

Components 0
Dependencies 1

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 1
dl 74
loc 74
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 13 13 1
A orderToken() 4 4 1
A product() 4 4 1
A productVariant() 4 4 1
A quantity() 4 4 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
<?php
2
3
namespace Sylius\ShopApiPlugin\Command;
4
5
use Webmozart\Assert\Assert;
6
7 View Code Duplication
final class PutVariantBasedConfigurableItemToCart
8
{
9
    /**
10
     * @var string
11
     */
12
    private $orderToken;
13
14
    /**
15
     * @var string
16
     */
17
    private $product;
18
19
    /**
20
     * @var int
21
     */
22
    private $quantity;
23
24
    /**
25
     * @var string
26
     */
27
    private $productVariant;
28
29
    /**
30
     * @param string $orderToken
31
     * @param string $product
32
     * @param string $productVariant
33
     * @param int $quantity
34
     */
35
    public function __construct($orderToken, $product, $productVariant, $quantity)
36
    {
37
        Assert::string($orderToken, 'Expected order token to be string, got %s');
38
        Assert::string($product, 'Expected product code to be string, got %s');
39
        Assert::string($productVariant, 'Expected product variant code to be string, got %s');
40
        Assert::integer($quantity, 'Expected quantity to be integer, got %s');
41
        Assert::greaterThan($quantity, 0, 'Quantity should be greater than 0');
42
43
        $this->orderToken = $orderToken;
44
        $this->product = $product;
45
        $this->quantity = $quantity;
46
        $this->productVariant = $productVariant;
47
    }
48
49
    /**
50
     * @return string
51
     */
52
    public function orderToken()
53
    {
54
        return $this->orderToken;
55
    }
56
57
    /**
58
     * @return string
59
     */
60
    public function product()
61
    {
62
        return $this->product;
63
    }
64
65
    /**
66
     * @return string
67
     */
68
    public function productVariant()
69
    {
70
        return $this->productVariant;
71
    }
72
73
    /**
74
     * @return int
75
     */
76
    public function quantity()
77
    {
78
        return $this->quantity;
79
    }
80
}
81